> Date: Mon, 1 May 2017 20:58:29 +0100
> From: Stuart Henderson <[email protected]>
>
> Userland is non-responsive, machine is pingable, tcp connections open
> but no banner from ssh. No failed pool requests. This kernel is from
> today's snapshot but I saw the same with one from a couple of days
> ago. Is there anything else I can get that might be useful?
>
> ddb> ps
> PID TID PPID UID S FLAGS WAIT COMMAND
> 99554 86967 57409 55 3 0x2 vp cc
> 57409 23557 97377 55 3 0x82 wait cc
> 97377 51254 49407 55 3 0x10008a pause sh
> 71034 186155 65198 0 3 0x11 vp perl
> 49407 183801 58608 55 3 0x82 wait gmake
> 58608 251568 90720 55 3 0x10008a pause sh
> 90720 294385 26849 55 3 0x82 wait gmake
> 26849 434857 31480 55 3 0x100088 pause sh
> 31480 479316 1945 55 3 0x10008a pause sh
> 1945 53261 1392 55 3 0x82 wait gmake
> 1392 297593 28991 55 3 0x100088 pause sh
> 28991 101756 11650 55 3 0x10008a pause sh
> 11650 273060 70062 55 3 0x82 wait gmake
> 70062 380995 21324 55 3 0x82 wait gmake
> 21324 380494 20357 55 3 0x10008a pause make
> 20357 495141 79040 55 3 0x10008a pause sh
> 79040 411698 40069 55 3 0x10008a pause make
> 40069 407214 61289 55 3 0x10008a pause sh
> 61289 440156 65198 55 3 0x10008a pause make
> 16484 143829 63578 55 3 0x82 nanosleep perl
> 63578 247597 69857 55 3 0x10008a pause sh
> 69857 3708 28018 55 3 0x10008a pause make
> 28018 161747 1 55 3 0x10008a pause sh
> 78305 185109 40308 1000 3 0x100083 ttyin ksh
> 65198 454438 69872 0 3 0x93 wait perl
> 69872 91535 40308 1000 3 0x10008b pause ksh
> 40308 108204 1 1000 3 0x100080 kqread tmux
> 72632 510504 69073 1000 3 0x100083 kqread tmux
> 69073 166246 39096 1000 3 0x10008b pause ksh
> 39096 474432 39165 1000 3 0x10 vp sshd
> 39165 380864 95218 0 3 0x92 poll sshd
> 19837 75515 1 0 3 0x100003 vp getty
> 61 140725 1 0 3 0x100010 vp cron
> 33247 144573 1 110 3 0x100090 poll sndiod
> 85245 294054 1 99 3 0x100090 poll sndiod
> 20071 339430 77361 95 3 0x100092 kqread smtpd
> 31714 216717 77361 103 3 0x100092 kqread smtpd
> 38145 373966 77361 95 3 0x100092 kqread smtpd
> 73235 449750 77361 95 3 0x100092 kqread smtpd
> 52512 523411 77361 95 3 0x100092 kqread smtpd
> 25217 17706 77361 95 3 0x100092 kqread smtpd
> 77361 512649 1 0 3 0x100080 kqread smtpd
> 95218 352524 1 0 3 0x80 select sshd
> 28640 338771 0 0 3 0x14280 nfsidl nfsio
> 30707 131410 0 0 3 0x14280 nfsidl nfsio
> 26109 142203 0 0 3 0x14280 nfsidl nfsio
> 61054 453416 0 0 3 0x14280 nfsidl nfsio
> 20679 124381 1 0 3 0x80 poll rpc.statd
> 75142 494960 1 28 3 0x100090 poll portmap
> 13394 497677 1 0 3 0x100000 vp ntpd
> 56991 117256 27035 83 3 0x100092 poll ntpd
> 27035 498377 1 83 3 0x100092 poll ntpd
> 19071 360785 2016 74 3 0x100090 bpf pflogd
> 2016 326372 1 0 3 0x80 netio pflogd
> 75485 263260 29155 73 3 0x100090 kqread syslogd
> 29155 379800 1 0 3 0x100082 netio syslogd
> 9314 271265 1 77 3 0x100090 poll dhclient
> 77002 222287 1 0 3 0x80 poll dhclient
> 4332 479844 1 0 3 0x80 mfsidl mount_mfs
> 58334 330646 0 0 3 0x14200 pgzero zerothread
> 15557 331142 0 0 3 0x14200 aiodoned aiodoned
> 34557 432814 0 0 3 0x14200 syncer update
> 82663 208419 0 0 3 0x14200 cleaner cleaner
> 51853 347618 0 0 3 0x14200 reaper reaper
> 18753 499821 0 0 3 0x14200 pgdaemon pagedaemon
> 59831 415568 0 0 3 0x14200 bored crynlk
> 29354 478337 0 0 3 0x14200 bored crypto
> 33898 6377 0 0 3 0x14200 pftm pfpurge
> 33736 115197 0 0 3 0x14200 usbtsk usbtask
> 54044 43212 0 0 3 0x14200 usbatsk usbatsk
> 57344 273215 0 0 3 0x14200 bored softnet
> 88556 58351 0 0 3 0x14200 bored systqmp
> 69342 477649 0 0 3 0x14200 bored systq
> 25767 494373 0 0 3 0x40014200 bored softclock
> *43785 51419 0 0 7 0x40014200 idle0
> 9892 420912 0 0 3 0x14200 kmalloc kmthread
> 1 54365 0 0 3 0x82 wait init
> 0 0 -1 0 3 0x10200 scheduler swapper
The diff below might fix thise. Or it might actually turn this into a
hard hang...
Nevertheless, could you try running with it?
Index: pmap.c
===================================================================
RCS file: /cvs/src/sys/arch/arm64/arm64/pmap.c,v
retrieving revision 1.33
diff -u -p -r1.33 pmap.c
--- pmap.c 15 Apr 2017 11:15:02 -0000 1.33
+++ pmap.c 1 May 2017 20:16:44 -0000
@@ -322,17 +322,10 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, str
struct pmapvp2 *vp2;
struct pmapvp3 *vp3;
- int vp_pool_flags;
- if (pm == pmap_kernel()) {
- vp_pool_flags = PR_NOWAIT;
- } else {
- vp_pool_flags = PR_WAITOK |PR_ZERO;
- }
-
if (pm->have_4_level_pt) {
vp1 = pm->pm_vp.l0->vp[VP_IDX0(va)];
if (vp1 == NULL) {
- vp1 = pool_get(&pmap_vp_pool, vp_pool_flags);
+ vp1 = pool_get(&pmap_vp_pool, PR_NOWAIT | PR_ZERO);
if (vp1 == NULL) {
if ((flags & PMAP_CANFAIL) == 0)
panic("%s: unable to allocate L1",
@@ -347,7 +340,7 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, str
vp2 = vp1->vp[VP_IDX1(va)];
if (vp2 == NULL) {
- vp2 = pool_get(&pmap_vp_pool, vp_pool_flags);
+ vp2 = pool_get(&pmap_vp_pool, PR_NOWAIT | PR_ZERO);
if (vp2 == NULL) {
if ((flags & PMAP_CANFAIL) == 0)
panic("%s: unable to allocate L2", __func__);
@@ -358,7 +351,7 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, str
vp3 = vp2->vp[VP_IDX2(va)];
if (vp3 == NULL) {
- vp3 = pool_get(&pmap_vp_pool, vp_pool_flags);
+ vp3 = pool_get(&pmap_vp_pool, PR_NOWAIT | PR_ZERO);
if (vp3 == NULL) {
if ((flags & PMAP_CANFAIL) == 0)
panic("%s: unable to allocate L3", __func__);