Re: "panic: malloc(M_WAITOK) in non-sleepable context" when inserting usb stick

2020-08-18 Thread Mateusz Guzik
Hello,

this sould take care of it (in that it will print the warning, but not
panic the box):

diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c
index 46eb1c4347c..7b94ca7b880 100644
--- a/sys/kern/kern_malloc.c
+++ b/sys/kern/kern_malloc.c
@@ -618,8 +618,8 @@ void *
unsigned long osize = size;
 #endif

-   KASSERT((flags & M_WAITOK) == 0 || THREAD_CAN_SLEEP(),
-   ("malloc(M_WAITOK) in non-sleepable context"));
+   if ((flags & M_WAITOK) != 0)
+   WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, __func__);

 #ifdef MALLOC_DEBUG
va = NULL;
diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c
index 37d78354200..2e1267ec02f 100644
--- a/sys/vm/uma_core.c
+++ b/sys/vm/uma_core.c
@@ -3355,8 +3355,8 @@ uma_zalloc_arg(uma_zone_t zone, void *udata, int flags)
uma_cache_bucket_t bucket;
uma_cache_t cache;

-   KASSERT((flags & M_WAITOK) == 0 || THREAD_CAN_SLEEP(),
-   ("uma_zalloc(M_WAITOK) in non-sleepable context"));
+   if ((flags & M_WAITOK) != 0)
+   WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, __func__);

/* Enable entropy collection for RANDOM_ENABLE_UMA kernel option */
random_harvest_fast_uma(, sizeof(zone), RANDOM_UMA);

On 8/17/20, mori...@mm.st  wrote:
> r364323, previously I think it was just a warning from witness.  Happens
> both on boot with stick already inserted, and when inserting the stick in
> booted system.
>
> Looks like my swap partition is no longer big enough for dump, translating
> from screen:
>
> umass0 numa-domain 0 on uhub4
> umass0:2:0: Attached to scbus2
> panic: malloc(M_WAITOK) in non-sleepable context
>
> vpanic()
> panic()
> malloc()
> disk_alloc()
> daregister()
> cam_periph_alloc()
> daasync()
> xpt_async_process_dev()
> xpt_async_process()
> xpt_done_process()
> xpt_done_td()
> fork_exit()
> fork_trampoline()
> ___
> freebsd-current@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
>


-- 
Mateusz Guzik 
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


"panic: malloc(M_WAITOK) in non-sleepable context" when inserting usb stick

2020-08-17 Thread moridin
r364323, previously I think it was just a warning from witness.  Happens both 
on boot with stick already inserted, and when inserting the stick in booted 
system.

Looks like my swap partition is no longer big enough for dump, translating from 
screen:

umass0 numa-domain 0 on uhub4
umass0:2:0: Attached to scbus2
panic: malloc(M_WAITOK) in non-sleepable context

vpanic()
panic()
malloc()
disk_alloc()
daregister()
cam_periph_alloc()
daasync()
xpt_async_process_dev()
xpt_async_process()
xpt_done_process()
xpt_done_td()
fork_exit()
fork_trampoline()
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"