--- /n/sources/plan9/sys/src/9/port/portfns.h Sat Mar 21 10:40:56 2026 +++ /sys/src/9/port/portfns.h Sun Oct 25 00:00:00 2026 @@ -379,6 +379,7 @@ char* validnamedup(char*, int); void validstat(uchar*, int); void* vmemchr(void*, int, int); +void wakebig(void); Proc* wakeup(Rendez*); int walk(Chan**, char**, int, int, int*); void wlock(RWlock*); --- /n/sources/plan9/sys/src/9/port/proc.c Mon Jun 22 00:00:00 2026 +++ /sys/src/9/port/proc.c Sun Oct 25 00:00:00 2026 @@ -1593,6 +1593,23 @@ } } +/* + * wake the processes killbig marked, so that those + * asleep in the kernel exit too + */ +void +wakebig(void) +{ + Proc *p, *ep; + + ep = procalloc.arena+conf.nproc; + for(p = procalloc.arena; p < ep; p++) + if(p->state != Dead && p->procctl == Proc_exitbig && canqlock(&p->debug)){ + postnote(p, 0, "sys: killed", NExit); + qunlock(&p->debug); + } +} + /* * change ownership to 'new' of all processes owned by 'old'. Used when * eve changes. --- /n/sources/plan9/sys/src/9/port/swap.c Sat Sep 27 11:12:44 2025 +++ /sys/src/9/port/swap.c Sun Oct 25 00:00:00 2026 @@ -179,6 +179,7 @@ print("out of memory\n"); killbig("out of memory"); freebroken(); /* can use the memory */ + wakebig(); /* Emulate the old system if no swap channel */ if(!swapimage.c)