daily CVS update output
Updating src tree: P src/distrib/sets/lists/base/mi P src/distrib/sets/lists/comp/md.amd64 P src/distrib/sets/lists/comp/md.i386 P src/distrib/sets/lists/comp/mi P src/etc/mtree/NetBSD.dist.base P src/external/bsd/compiler_rt/lib/clang/include/sanitizer/Makefile P src/external/bsd/compiler_rt/lib/clang/include/xray/Makefile P src/external/bsd/compiler_rt/lib/clang/lib/netbsd/common.mk P src/external/bsd/compiler_rt/lib/clang/share/Makefile P src/external/bsd/fetch/lib/Makefile P src/external/gpl2/lvm2/lvm2tools.mk P src/external/gpl3/gcc/README.gcc8 P src/external/mit/xorg/lib/libloader.mk P src/games/hack/Makefile P src/games/hack/hack.end.c P src/lib/libpam/modules/pam_krb5/pam_krb5.c P src/share/man/man9/Makefile P src/share/man/man9/percpu.9 P src/share/misc/acronyms.comp P src/share/mk/bsd.own.mk P src/sys/dev/hdaudio/hdaudio.c P src/sys/dev/pci/if_ixl.c P src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c P src/sys/external/bsd/drm2/linux/linux_pci.c P src/sys/kern/subr_percpu.c P src/sys/modules/examples/README P src/sys/net/bpf.c P src/sys/net/if_stats.c P src/sys/net/net_stats.c P src/sys/net/pktqueue.c P src/sys/net/npf/npf.c P src/sys/netinet/wqinput.c P src/sys/netipsec/key.c P src/sys/sys/param.h P src/sys/sys/percpu.h P src/tests/lib/libc/net/Makefile P src/tests/lib/libcurses/Makefile P src/tests/lib/libcurses/tests/mvscanw P src/usr.bin/calendar/calendars/calendar.computer P src/usr.bin/config/Makefile P src/usr.sbin/altq/altqstat/Makefile P src/usr.sbin/altq/altqstat/quip_client.c Updating xsrc tree: P xsrc/external/mit/xf86-video-ati-kms/dist/src/drmmode_display.c Killing core files: Updating tar files: src/top-level: collecting... replacing... done src/bin: collecting... replacing... done src/common: collecting... replacing... done src/compat: collecting... replacing... done src/crypto: collecting... replacing... done src/dist: collecting... replacing... done src/distrib: collecting... replacing... done src/doc: collecting... replacing... done src/etc: collecting... replacing... done src/external: collecting... replacing... done src/extsrc: collecting... replacing... done src/games: collecting... replacing... done src/gnu: collecting...pax: Unable to access src/gnu (No such file or directory) pax: WARNING! These file names were not selected: src/gnu done src/include: collecting... replacing... done src/lib: collecting... replacing... done src/libexec: collecting... replacing... done src/regress: collecting... replacing... done src/rescue: collecting... replacing... done src/sbin: collecting... replacing... done src/share: collecting... replacing... done src/sys: collecting... replacing... done src/tests: collecting... replacing... done src/tools: collecting... replacing... done src/usr.bin: collecting... replacing... done src/usr.sbin: collecting... replacing... done src/config: collecting... replacing... done src: collecting... replacing... done xsrc/top-level: collecting... replacing... done xsrc/external: collecting... replacing... done xsrc/local: collecting... replacing... done xsrc: collecting... replacing... done Updating release-7 src tree (netbsd-7): Updating release-7 xsrc tree (netbsd-7): Updating release-7 tar files: src/top-level: collecting... replacing... done src/bin: collecting... replacing... done src/common: collecting... replacing... done src/compat: collecting... replacing... done src/crypto: collecting... replacing... done src/dist: collecting... replacing... done src/distrib: collecting... replacing... done src/doc: collecting... replacing... done src/etc: collecting... replacing... done src/external: collecting... replacing... done src/extsrc: collecting... replacing... done src/games: collecting... replacing... done src/gnu: collecting... replacing... done src/include: collecting... replacing... done src/lib: collecting... replacing... done src/libexec: collecting... replacing... done src/regress: collecting... replacing... done src/rescue: collecting... replacing... done src/sbin: collecting... replacing... done src/share: collecting... replacing... done src/sys: collecting... replacing... done src/tests: collecting... replacing... done src/tools: collecting... replacing... done src/usr.bin: collecting... replacing... done src/usr.sbin: collecting... replacing... done src/config: collecting... replacing... done src/x11: collecting... replacing... done src: collecting... replacing... done xsrc/top-level: collecting... replacing... done xsrc/external: collecting... replacing... done xsrc/local: collecting... replacing... done xsrc/xfree: collecting... replacing... done xsrc: collecting... replacing... done Updating release-8 src tree (netbsd-8): Updating release-8 xsrc tree (netbsd-8): Updating release-8 tar files: src/top-level: collecting... replacing... done src/bin: collecting... replacing... done src/common: collecting... replacing... done src/compat: collecting... replacing... done src/crypto:
Re: uvm/busy page deadlock in current (related to loading Raspberry Pi 3B+ Wi-Fi firmware, but more of a timing bug with the VM system)
On Thu, Feb 06, 2020 at 04:31:47PM -0800, Rob Newberry wrote: > Hi. > > I spent last weekend -- and a few days this week -- tracking down a problem > that exists in current. > I found a workaround, but I don't know what the "proper" fix is. > Digging through the VM layer and debugging with printfs was slow -- > and it's a boot-time issue, so I had to swap a lot of SD cards back and forth > :-). > Hopefully someone here is better at this than me. > > > [analysis...] good job working your way through all that, this code is pretty complicated. > 3) Start "aiodone_queue" earlier in the sequence. I don't have a rich enough > understanding of > this part of the kernel and user land startup process to know how hard this > is, or how hacky it is. this is the right way to fix it. please try the attached patch. > BTW, I'm ASSUMING that if uvm.aiodone_queue were present, the asynchronous > completion would somehow > handle marking the pages as "not busy". But I actually never debugged that > code path, > so I can't be sure that's helpful. right, the "aiodone_queue" workqueue will call uvm_aiodone_worker() on the buffer, and bp->b_iodone will have been set to uvm_aio_aiodone, which unbusies the pages among other things. -Chuck Index: src/sys/kern/init_main.c === RCS file: /home/chs/netbsd/cvs/src/sys/kern/init_main.c,v retrieving revision 1.519 diff -u -p -r1.519 init_main.c --- src/sys/kern/init_main.c28 Jan 2020 16:35:39 - 1.519 +++ src/sys/kern/init_main.c7 Feb 2020 18:14:06 - @@ -655,6 +655,22 @@ main(void) sysctl_finalize(); + /* Create the aiodone daemon kernel thread. */ + if (workqueue_create(_queue, "aiodoned", + uvm_aiodone_worker, NULL, PRI_VM, IPL_NONE, WQ_MPSAFE)) + panic("fork aiodoned"); + + /* Create the pageout daemon kernel thread. */ + uvm_swap_init(); + if (kthread_create(PRI_PGDAEMON, KTHREAD_MPSAFE, NULL, uvm_pageout, + NULL, NULL, "pgdaemon")) + panic("fork pagedaemon"); + + /* Create the filesystem syncer kernel thread. */ + if (kthread_create(PRI_IOFLUSH, KTHREAD_MPSAFE, NULL, sched_sync, + NULL, NULL, "ioflush")) + panic("fork syncer"); + /* * Now that autoconfiguration has completed, we can determine * the root and dump devices. @@ -709,22 +725,6 @@ main(void) ci->ci_schedstate.spc_lastmod = time_second; } - /* Create the pageout daemon kernel thread. */ - uvm_swap_init(); - if (kthread_create(PRI_PGDAEMON, KTHREAD_MPSAFE, NULL, uvm_pageout, - NULL, NULL, "pgdaemon")) - panic("fork pagedaemon"); - - /* Create the filesystem syncer kernel thread. */ - if (kthread_create(PRI_IOFLUSH, KTHREAD_MPSAFE, NULL, sched_sync, - NULL, NULL, "ioflush")) - panic("fork syncer"); - - /* Create the aiodone daemon kernel thread. */ - if (workqueue_create(_queue, "aiodoned", - uvm_aiodone_worker, NULL, PRI_VM, IPL_NONE, WQ_MPSAFE)) - panic("fork aiodoned"); - /* Wait for final configure threads to complete. */ config_finalize_mountroot(); Index: src/sys/miscfs/genfs/genfs_io.c === RCS file: /home/chs/netbsd/cvs/src/sys/miscfs/genfs/genfs_io.c,v retrieving revision 1.84 diff -u -p -r1.84 genfs_io.c --- src/sys/miscfs/genfs/genfs_io.c 15 Jan 2020 17:55:44 - 1.84 +++ src/sys/miscfs/genfs/genfs_io.c 7 Feb 2020 18:22:31 - @@ -606,9 +606,6 @@ genfs_getpages_read(struct vnode *vp, st if (kva == 0) return EBUSY; - if (uvm.aiodone_queue == NULL) - async = 0; - mbp = getiobuf(vp, true); mbp->b_bufsize = totalbytes; mbp->b_data = (void *)kva; @@ -1396,7 +1393,6 @@ genfs_gop_write(struct vnode *vp, struct UVMPAGER_MAPIN_WRITE | UVMPAGER_MAPIN_WAITOK); len = npages << PAGE_SHIFT; - KASSERT(uvm.aiodone_queue != NULL); error = genfs_do_io(vp, off, kva, len, flags, UIO_WRITE, uvm_aio_biodone); @@ -1429,7 +1425,6 @@ genfs_gop_write_rwmap(struct vnode *vp, UVMPAGER_MAPIN_READ | UVMPAGER_MAPIN_WAITOK); len = npages << PAGE_SHIFT; - KASSERT(uvm.aiodone_queue != NULL); error = genfs_do_io(vp, off, kva, len, flags, UIO_WRITE, uvm_aio_biodone); Index: src/sys/uvm/uvm_swap.c === RCS file: /home/chs/netbsd/cvs/src/sys/uvm/uvm_swap.c,v retrieving revision 1.185 diff -u -p -r1.185 uvm_swap.c --- src/sys/uvm/uvm_swap.c 27 Dec 2019 09:41:51 - 1.185 +++ src/sys/uvm/uvm_swap.c 7 Feb 2020 18:26:49 - @@ -1778,10 +1778,6 @@ uvm_swap_io(struct vm_page **pps, int st
Re: panic after DRM & nouveau MSI changes
I see that the MSI changes have been reverted. I have not yet updated my sources and still have the MSI-enabled sources plus proposed nouveau patch applied in my kernels. FWIW, quick tests with known-to-work radeon and intel graphics devices show that they are quite happy with MSI. It's only NVIDIA/nouveau devices that are having trouble. Is it possible then to enable MSI for DRM devices generally, but force nouveau to use INTx until the matter can be sorted? -- |/"\ John D. Baker, KN5UKS NetBSD Darwin/MacOS X |\ / jdbaker[snail]consolidated[flyspeck]net OpenBSDFreeBSD | X No HTML/proprietary data in email. BSD just sits there and works! |/ \ GPGkeyID: D703 4A7E 479F 63F8 D3F4 BD99 9572 8F23 E4AD 1645
Re: radeon DRMKMS on Gateway M-1625
On Thu, 6 Feb 2020, John D. Baker wrote: > While testing other machines for PR kern/52440, I happened to boot a > Gateway M-1625 laptop. At some point during boot, it appeared to hang > and the LCD screen slowed faded to white. As an additional data point, it fails the same way under amd64-9.0_RC2, i386-9.0_RC2, and i386-current (9.99.45). -- |/"\ John D. Baker, KN5UKS NetBSD Darwin/MacOS X |\ / jdbaker[snail]consolidated[flyspeck]net OpenBSDFreeBSD | X No HTML/proprietary data in email. BSD just sits there and works! |/ \ GPGkeyID: D703 4A7E 479F 63F8 D3F4 BD99 9572 8F23 E4AD 1645