Messages in this thread | | | From | Borislav Petkov <> | Subject | Re: voluntary-preempt-2.6.7-vanilla-H4 function sleeps inside a spinlock, SOLVED? | Date | Sun, 5 Sep 2004 21:15:40 +0200 |
| |
On Sunday 05 September 2004 16:52, you wrote: > Hi, > > I've applied the patch in the subject line and everything was running fine > for several but today day, during heavy hd activity, i got the following: > > Sep 5 16:34:13 gollum kernel: Debug: sleeping function called from invalid > context pdflush(41) at fs/inode.c:245 > Sep 5 16:34:13 gollum kernel: in_atomic():1, irqs_disabled():0 > Sep 5 16:34:13 gollum kernel: [dump_stack+30/48] dump_stack+0x1e/0x30 > Sep 5 16:34:13 gollum kernel: [__might_sleep+205/256] > __might_sleep+0xcd/0x100 > Sep 5 16:34:13 gollum kernel: [clear_inode+31/240] clear_inode+0x1f/0xf0 > Sep 5 16:34:13 gollum kernel: [generic_delete_inode+206/768] > generic_delete_inode+0xce/0x300 > Sep 5 16:34:13 gollum kernel: [iput+100/144] iput+0x64/0x90 > Sep 5 16:34:13 gollum kernel: [dput+554/1840] dput+0x22a/0x730 > Sep 5 16:34:13 gollum kernel: [release_task+548/880] > release_task+0x224/0x370 > Sep 5 16:34:13 gollum kernel: [do_exit+1369/2528] do_exit+0x559/0x9e0 > Sep 5 16:34:13 gollum kernel: [kernel_thread_helper+11/16] > kernel_thread_helper+0xb/0x10 > Sep 5 16:34:13 gollum kernel: > Sep 5 16:34:50 gollum kernel: Debug: sleeping function called from invalid > context pdflush(42) at fs/inode.c:245 > Sep 5 16:34:50 gollum kernel: in_atomic():1, irqs_disabled():0 > Sep 5 16:34:50 gollum kernel: [dump_stack+30/48] dump_stack+0x1e/0x30 > Sep 5 16:34:50 gollum kernel: [__might_sleep+205/256] > __might_sleep+0xcd/0x100 > Sep 5 16:34:50 gollum kernel: [clear_inode+31/240] clear_inode+0x1f/0xf0 > Sep 5 16:34:50 gollum kernel: [generic_delete_inode+206/768] > generic_delete_inode+0xce/0x300 > Sep 5 16:34:50 gollum kernel: [iput+100/144] iput+0x64/0x90 > Sep 5 16:34:50 gollum kernel: [dput+554/1840] dput+0x22a/0x730 > Sep 5 16:34:50 gollum kernel: [release_task+548/880] > release_task+0x224/0x370 > Sep 5 16:34:50 gollum kernel: [do_exit+1369/2528] do_exit+0x559/0x9e0 > Sep 5 16:34:50 gollum kernel: [kernel_thread_helper+11/16] > kernel_thread_helper+0xb/0x10 > Sep 5 16:34:50 gollum kernel: > > I have also several ACPI patches applied but I think this is > unrelated. .config attached. > > Regards, > Boris.
Ok, since I'm no expert I went for the obvious solution and removed the preemption point in fs/inode.c,245:
void clear_inode(struct inode *inode) { /* might_sleep(); */ invalidate_inode_buffers(inode);
if (inode->i_data.nrpages)
However, maybe a more elegant solution would be preferrable. In addition, I don't see the same preemption point in the latest patch - voluntary-preempt-2.6.9-rc1-bk4-R4.patch.
Regards, Boris. [unhandled content-type:application/pgp-signature] | |