daily CVS update output

2020-02-07 Thread NetBSD source update


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)

2020-02-07 Thread Chuck Silvers
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

2020-02-07 Thread John D. Baker
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

2020-02-07 Thread John D. Baker
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