2009-06-17 21:35:30

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: init_emergency_isa_pool calling mempool_create in non-sleeping context

I just saw this when booting a current linux-2.6.git kernel (3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8).
.config and full bootlog attached.

BUG: sleeping function called from invalid context at /home/jeremy/git/linux/mm/slab.c:3029
in_atomic(): 1, irqs_disabled(): 0, pid: 388, name: lvm
Pid: 388, comm: lvm Not tainted 2.6.30 #225
Call Trace:
[<ffffffff81137a65>] ? __init_rwsem+0x29/0x39
[<ffffffff81035346>] __might_sleep+0x110/0x112
[<ffffffff810acf07>] kmem_cache_alloc+0x38/0x12b
[<ffffffff810a71d4>] ? mempool_alloc_pages_isa+0x0/0x10
[<ffffffff8108a5df>] mempool_create_node+0x2f/0x152
[<ffffffff8108a31c>] ? mempool_free_pages+0x0/0xb
[<ffffffff8108a70f>] mempool_create+0xd/0xf
[<ffffffff810a71ad>] init_emergency_isa_pool+0x28/0x4f
[<ffffffff81127b90>] blk_queue_bounce_limit+0x40/0x56
[<ffffffffa00f856c>] dm_table_set_restrictions+0x82/0xa6 [dm_mod]
[<ffffffffa00f6415>] dm_swap_table+0x132/0x15a [dm_mod]
[<ffffffffa00faf61>] dev_suspend+0xfd/0x177 [dm_mod]
[<ffffffffa00fb959>] dm_ctl_ioctl+0x252/0x2a2 [dm_mod]
[<ffffffffa00fae64>] ? dev_suspend+0x0/0x177 [dm_mod]
[<ffffffff810bd4c0>] vfs_ioctl+0x2a/0x77
[<ffffffff810bd9b4>] do_vfs_ioctl+0x4a7/0x4fa
[<ffffffff810bda5e>] sys_ioctl+0x57/0x7a
[<ffffffff81011042>] system_call_fastpath+0x16/0x1b

J


Attachments:
sleeping-slab-config (43.91 kB)
bootlog.txt (28.10 kB)
Download all attachments

2009-06-17 22:22:52

by NeilBrown

[permalink] [raw]
Subject: Re: init_emergency_isa_pool calling mempool_create in non-sleeping context


You wanted [email protected], not [email protected].

NeilBrown


On Thu, June 18, 2009 7:35 am, Jeremy Fitzhardinge wrote:
> I just saw this when booting a current linux-2.6.git kernel
> (3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8).
> .config and full bootlog attached.
>
> BUG: sleeping function called from invalid context at
> /home/jeremy/git/linux/mm/slab.c:3029
> in_atomic(): 1, irqs_disabled(): 0, pid: 388, name: lvm
> Pid: 388, comm: lvm Not tainted 2.6.30 #225
> Call Trace:
> [<ffffffff81137a65>] ? __init_rwsem+0x29/0x39
> [<ffffffff81035346>] __might_sleep+0x110/0x112
> [<ffffffff810acf07>] kmem_cache_alloc+0x38/0x12b
> [<ffffffff810a71d4>] ? mempool_alloc_pages_isa+0x0/0x10
> [<ffffffff8108a5df>] mempool_create_node+0x2f/0x152
> [<ffffffff8108a31c>] ? mempool_free_pages+0x0/0xb
> [<ffffffff8108a70f>] mempool_create+0xd/0xf
> [<ffffffff810a71ad>] init_emergency_isa_pool+0x28/0x4f
> [<ffffffff81127b90>] blk_queue_bounce_limit+0x40/0x56
> [<ffffffffa00f856c>] dm_table_set_restrictions+0x82/0xa6 [dm_mod]
> [<ffffffffa00f6415>] dm_swap_table+0x132/0x15a [dm_mod]
> [<ffffffffa00faf61>] dev_suspend+0xfd/0x177 [dm_mod]
> [<ffffffffa00fb959>] dm_ctl_ioctl+0x252/0x2a2 [dm_mod]
> [<ffffffffa00fae64>] ? dev_suspend+0x0/0x177 [dm_mod]
> [<ffffffff810bd4c0>] vfs_ioctl+0x2a/0x77
> [<ffffffff810bd9b4>] do_vfs_ioctl+0x4a7/0x4fa
> [<ffffffff810bda5e>] sys_ioctl+0x57/0x7a
> [<ffffffff81011042>] system_call_fastpath+0x16/0x1b
>
> J
>
>

2009-06-17 22:42:35

by Mike Snitzer

[permalink] [raw]
Subject: Re: init_emergency_isa_pool calling mempool_create in non-sleeping context

On Wed, Jun 17 2009 at 6:22pm -0400,
NeilBrown <[email protected]> wrote:

>
> You wanted [email protected], not [email protected].
>
> NeilBrown
>
>
> On Thu, June 18, 2009 7:35 am, Jeremy Fitzhardinge wrote:
> > I just saw this when booting a current linux-2.6.git kernel
> > (3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8).
> > .config and full bootlog attached.
> >
> > BUG: sleeping function called from invalid context at
> > /home/jeremy/git/linux/mm/slab.c:3029
> > in_atomic(): 1, irqs_disabled(): 0, pid: 388, name: lvm
> > Pid: 388, comm: lvm Not tainted 2.6.30 #225
> > Call Trace:
> > [<ffffffff81137a65>] ? __init_rwsem+0x29/0x39
> > [<ffffffff81035346>] __might_sleep+0x110/0x112
> > [<ffffffff810acf07>] kmem_cache_alloc+0x38/0x12b
> > [<ffffffff810a71d4>] ? mempool_alloc_pages_isa+0x0/0x10
> > [<ffffffff8108a5df>] mempool_create_node+0x2f/0x152
> > [<ffffffff8108a31c>] ? mempool_free_pages+0x0/0xb
> > [<ffffffff8108a70f>] mempool_create+0xd/0xf
> > [<ffffffff810a71ad>] init_emergency_isa_pool+0x28/0x4f
> > [<ffffffff81127b90>] blk_queue_bounce_limit+0x40/0x56
> > [<ffffffffa00f856c>] dm_table_set_restrictions+0x82/0xa6 [dm_mod]
> > [<ffffffffa00f6415>] dm_swap_table+0x132/0x15a [dm_mod]
> > [<ffffffffa00faf61>] dev_suspend+0xfd/0x177 [dm_mod]
> > [<ffffffffa00fb959>] dm_ctl_ioctl+0x252/0x2a2 [dm_mod]
> > [<ffffffffa00fae64>] ? dev_suspend+0x0/0x177 [dm_mod]
> > [<ffffffff810bd4c0>] vfs_ioctl+0x2a/0x77
> > [<ffffffff810bd9b4>] do_vfs_ioctl+0x4a7/0x4fa
> > [<ffffffff810bda5e>] sys_ioctl+0x57/0x7a
> > [<ffffffff81011042>] system_call_fastpath+0x16/0x1b


This has been resolved and is waiting to be pushed along with the rest
of the DM changes for 2.6.31.

See:
ftp://ftp.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/dm-table-establish-queue-limits-by-copying-table-limits.patch

Maybe this fix should go now rather than wait a day or so for the larger
DM push?

Mike

2009-06-17 22:45:44

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: Re: init_emergency_isa_pool calling mempool_create in non-sleeping context

On 06/17/09 15:42, Mike Snitzer wrote:
> This has been resolved and is waiting to be pushed along with the rest
> of the DM changes for 2.6.31.
>
> See:
> ftp://ftp.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/dm-table-establish-queue-limits-by-copying-table-limits.patch
>

OK, good to know.

> Maybe this fix should go now rather than wait a day or so for the larger
> DM push?
>

The machine booted fine with no apparent badness, so I don't think its
urgent. I just reported it for diligence's sake.

J

2009-06-17 22:49:59

by Mike Snitzer

[permalink] [raw]
Subject: Re: init_emergency_isa_pool calling mempool_create in non-sleeping context

On Wed, Jun 17 2009 at 6:42pm -0400,
Mike Snitzer <[email protected]> wrote:

> On Wed, Jun 17 2009 at 6:22pm -0400,
> NeilBrown <[email protected]> wrote:
>
> >
> > You wanted [email protected], not [email protected].
> >
> > NeilBrown
> >
> >
> > On Thu, June 18, 2009 7:35 am, Jeremy Fitzhardinge wrote:
> > > I just saw this when booting a current linux-2.6.git kernel
> > > (3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8).
> > > .config and full bootlog attached.
> > >
> > > BUG: sleeping function called from invalid context at
> > > /home/jeremy/git/linux/mm/slab.c:3029
> > > in_atomic(): 1, irqs_disabled(): 0, pid: 388, name: lvm
> > > Pid: 388, comm: lvm Not tainted 2.6.30 #225
> > > Call Trace:
> > > [<ffffffff81137a65>] ? __init_rwsem+0x29/0x39
> > > [<ffffffff81035346>] __might_sleep+0x110/0x112
> > > [<ffffffff810acf07>] kmem_cache_alloc+0x38/0x12b
> > > [<ffffffff810a71d4>] ? mempool_alloc_pages_isa+0x0/0x10
> > > [<ffffffff8108a5df>] mempool_create_node+0x2f/0x152
> > > [<ffffffff8108a31c>] ? mempool_free_pages+0x0/0xb
> > > [<ffffffff8108a70f>] mempool_create+0xd/0xf
> > > [<ffffffff810a71ad>] init_emergency_isa_pool+0x28/0x4f
> > > [<ffffffff81127b90>] blk_queue_bounce_limit+0x40/0x56
> > > [<ffffffffa00f856c>] dm_table_set_restrictions+0x82/0xa6 [dm_mod]
> > > [<ffffffffa00f6415>] dm_swap_table+0x132/0x15a [dm_mod]
> > > [<ffffffffa00faf61>] dev_suspend+0xfd/0x177 [dm_mod]
> > > [<ffffffffa00fb959>] dm_ctl_ioctl+0x252/0x2a2 [dm_mod]
> > > [<ffffffffa00fae64>] ? dev_suspend+0x0/0x177 [dm_mod]
> > > [<ffffffff810bd4c0>] vfs_ioctl+0x2a/0x77
> > > [<ffffffff810bd9b4>] do_vfs_ioctl+0x4a7/0x4fa
> > > [<ffffffff810bda5e>] sys_ioctl+0x57/0x7a
> > > [<ffffffff81011042>] system_call_fastpath+0x16/0x1b
>
>
> This has been resolved and is waiting to be pushed along with the rest
> of the DM changes for 2.6.31.
>
> See:
> ftp://ftp.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/dm-table-establish-queue-limits-by-copying-table-limits.patch
>
> Maybe this fix should go now rather than wait a day or so for the larger
> DM push?

But in order to do so this patch needs to be merged first:

ftp://ftp.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/dm-table-replace-struct-io_restrictions-with-struct-queue_limits.patch

I'll defer to Alasdair on whether we want to push the DM changes in 2
batches in light of the current linux-2.6 DM breakage that occurred as a
side-effect of some block changes.

Mike

2009-06-17 22:50:38

by Mike Snitzer

[permalink] [raw]
Subject: Re: init_emergency_isa_pool calling mempool_create in non-sleeping context

On Wed, Jun 17 2009 at 6:45pm -0400,
Jeremy Fitzhardinge <[email protected]> wrote:

> On 06/17/09 15:42, Mike Snitzer wrote:
> > This has been resolved and is waiting to be pushed along with the rest
> > of the DM changes for 2.6.31.
> >
> > See:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/dm-table-establish-queue-limits-by-copying-table-limits.patch
> >
>
> OK, good to know.
>
> > Maybe this fix should go now rather than wait a day or so for the larger
> > DM push?
> >
>
> The machine booted fine with no apparent badness, so I don't think its
> urgent. I just reported it for diligence's sake.

OK, thanks.

Mike