Re: [BUG] sleeping function called from invalid context at kernel/sched.c

From: Frederik Deweerdt
Date: Mon Jan 08 2007 - 17:57:34 EST


On Mon, Jan 08, 2007 at 04:27:32PM -0500, Sumit Narayan wrote:
> Hi,
>
> I am trying to do file write operations in a thread (filewrite())
> initiated from a jprobe (fs_vfs_write()) set on kernel function
> (vfs_write()). Although the write operation succeed, I get this on my
> log:
>
> BUG: sleeping function called from invalid context at kernel/sched.c:3678
> in_atomic():0, irqs_disabled():1
> [<c011a65b>] __might_sleep+0xa5/0xab
> [<c0343a00>] wait_for_completion+0x1a/0xc9
> [<c0118480>] __wake_up+0x32/0x43
> [<c012b33a>] __queue_work+0x42/0x4f
> [<c012e0f7>] kthread_create+0x9b/0xd3
> [<c012e00a>] keventd_create_kthread+0x0/0x52
> [<f8a560d4>] filewrite+0x0/0xaf [fsTrace]
> [<c03464b9>] do_page_fault+0x31f/0x5c5
> [<f8a561da>] fs_vfs_write+0x57/0x9e [fsTrace]
> [<f8a560d4>] filewrite+0x0/0xaf [fsTrace]
> [<c015f396>] sys_write+0x41/0x67
> [<c01034d1>] sysenter_past_esp+0x56/0x79
> =======================
kprobe disables interrupts, and you're not supposed to sleep with
interrupts disabled. But you call keventd_create_kthread which sleeps,
and that issues this message.

Regards,
Frederik
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/