lkml.org 
[lkml]   [2004]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: voluntary-preempt-2.6.7-vanilla-H4 function sleeps inside a spinlock, SOLVED?
Date
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]
\
 
 \ /
  Last update: 2005-03-22 14:05    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site