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    [W:0.025 / U:0.996 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site