public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Cc: linux-kernel@vger.kernel.org, "Rafael J. Wysocki" <rjw@sisk.pl>,
	Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>,
	Christoph Lameter <clameter@sgi.com>
Subject: Re: 2.6.22-rc3-mm1
Date: Thu, 31 May 2007 11:31:55 -0700	[thread overview]
Message-ID: <20070531113155.1c6d7185.akpm@linux-foundation.org> (raw)
In-Reply-To: <465F0B83.2050100@googlemail.com>

On Thu, 31 May 2007 19:53:07 +0200
Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote:

> Andrew Morton napisa__(a):
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc3/2.6.22-rc3-mm1/
> > 
> 
> CPU hotplug test triggered this
> 
> [ 4972.038008] CPU 1 is now offline
> [ 4972.041411] lockdep: not fixing up alternatives.
> [ 4972.051553] 
> [ 4972.051555] =================================
> [ 4972.057562] [ INFO: inconsistent lock state ]
> [ 4972.062056] 2.6.22-rc3-mm1 #10
> [ 4972.065184] ---------------------------------
> [ 4972.069663] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
> [ 4972.075758] sh/702 [HC0[0]:SC0[0]:HE1:SE1] takes:
> [ 4972.080554]  (&n->list_lock){++..}, at: [<c0181288>] add_partial+0xe/0x27
> 
> l *0xc0181288
> 0xc0181288 is in add_partial (/home/devel/linux-mm/mm/slub.c:1193).
> 1188    }
> 1189
> 1190    static void add_partial(struct kmem_cache_node *n, struct page *page)
> 1191    {
> 1192            spin_lock(&n->list_lock);
> 1193            n->nr_partial++;
> 1194            list_add(&page->lru, &n->partial);
> 1195            spin_unlock(&n->list_lock);
> 1196    }
> 1197
> 
> 
> [ 4972.087650] {in-hardirq-W} state was registered at:
> [ 4972.092656]   [<c0143bfe>] mark_lock+0x82/0x557
> [ 4972.097323]   [<c0144c5f>] __lock_acquire+0x476/0xd36
> [ 4972.102562]   [<c01455bd>] lock_acquire+0x9e/0xb8
> [ 4972.107342]   [<c0348993>] _spin_lock+0x38/0x62
> [ 4972.111993]   [<c0181d29>] deactivate_slab+0xb9/0x179
> [ 4972.117300]   [<c0181e56>] flush_slab+0x6d/0x72
> [ 4972.122063]   [<c0181e8c>] __flush_cpu_slab+0x31/0x36
> [ 4972.127335]   [<c0181ea5>] flush_cpu_slab+0x14/0x17
> [ 4972.132401]   [<c0113d6f>] smp_call_function_interrupt+0x3a/0x56
> [ 4972.138607]   [<c0104c73>] call_function_interrupt+0x33/0x38
> [ 4972.144503]   [<c0102b59>] default_idle+0x50/0x69
> [ 4972.149421]   [<c01023eb>] cpu_idle+0xb3/0xf8
> [ 4972.153889]   [<c03454fa>] rest_init+0x56/0x58
> [ 4972.158402]   [<c04f39c7>] start_kernel+0x351/0x359
> [ 4972.163450]   [<ffffffff>] 0xffffffff
> [ 4972.167221] irq event stamp: 2451

Yep, that's a bug in slub.  We take that lock in the IPI handler.  If a CPU
is currently holding that lock and then takes the IPI and enters
add_partial(), it'll deadlock.

> [ 4972.243670] 
> [ 4972.243670] stack backtrace:
> [ 4972.248166]  [<c0105281>] dump_trace+0x63/0x1eb
> [ 4972.252755]  [<c0105423>] show_trace_log_lvl+0x1a/0x2f
> [ 4972.257969]  [<c0106061>] show_trace+0x12/0x14
> [ 4972.262463]  [<c0106079>] dump_stack+0x16/0x18
> [ 4972.266974]  [<c0142ff8>] print_usage_bug+0x140/0x14a
> [ 4972.272109]  [<c0143e1a>] mark_lock+0x29e/0x557
> [ 4972.276708]  [<c0144cda>] __lock_acquire+0x4f1/0xd36
> [ 4972.281740]  [<c01455bd>] lock_acquire+0x9e/0xb8
> [ 4972.286416]  [<c0348993>] _spin_lock+0x38/0x62
> [ 4972.290936]  [<c0181288>] add_partial+0xe/0x27
> [ 4972.295458]  [<c0181cd7>] deactivate_slab+0x67/0x179
> [ 4972.300497]  [<c0181e56>] flush_slab+0x6d/0x72
> [ 4972.305018]  [<c0181e8c>] __flush_cpu_slab+0x31/0x36
> [ 4972.310049]  [<c01836e8>] slab_cpuup_callback+0x38/0x5b
> [ 4972.315348]  [<c01325d2>] notifier_call_chain+0x2b/0x4a
> [ 4972.320637]  [<c013261e>] __raw_notifier_call_chain+0x19/0x1e
> [ 4972.326473]  [<c013263d>] raw_notifier_call_chain+0x1a/0x1c
> [ 4972.332117]  [<c014bb62>] _cpu_down+0x19c/0x25a
> [ 4972.336724]  [<c014bc48>] cpu_down+0x28/0x3a
> [ 4972.341063]  [<c027f800>] store_online+0x27/0x5a
> [ 4972.345757]  [<c027c854>] sysdev_store+0x20/0x25
> [ 4972.350443]  [<c01c2739>] sysfs_write_file+0xc5/0xfd
> [ 4972.355482]  [<c0187243>] vfs_write+0xd1/0x15a
> [ 4972.360004]  [<c0187873>] sys_write+0x3d/0x72
> [ 4972.364411]  [<c01041e0>] syscall_call+0x7/0xb
> [ 4972.368924]  [<b7ff0410>] 0xb7ff0410
> [ 4972.372562]  =======================
> [ 4975.412963] lockdep: not fixing up alternatives.

Perhaps a suitable fix would be local_irq_disable() in flush_slab().

  parent reply	other threads:[~2007-05-31 18:32 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-31  6:58 2.6.22-rc3-mm1 Andrew Morton
2007-05-31 12:09 ` 2.6.22-rc3-mm1 Cornelia Huck
2007-05-31 12:15   ` 2.6.22-rc3-mm1 Matthew Wilcox
2007-05-31 12:20     ` 2.6.22-rc3-mm1 Cornelia Huck
2007-05-31 12:35       ` 2.6.22-rc3-mm1 Jeff Garzik
2007-05-31 15:11         ` 2.6.22-rc3-mm1 Cornelia Huck
2007-05-31 15:13         ` 2.6.22-rc3-mm1 Christoph Hellwig
2007-05-31 22:10           ` 2.6.22-rc3-mm1 Andrew Morton
2007-06-01  7:09             ` 2.6.22-rc3-mm1 Cornelia Huck
2007-05-31 15:29 ` 2.6.22-rc3-mm1 Michal Piotrowski
2007-05-31 19:58   ` 2.6.22-rc3-mm1 Rafael J. Wysocki
2007-05-31 21:30     ` [PATCH -mm] Freezer: migration_thread should not be freezable (was: Re: [linux-pm] Re: 2.6.22-rc3-mm1) Rafael J. Wysocki
     [not found]     ` <6bffcb0e0705311425q2e00cc69j5006d95c3f0df158@mail.gmail.com>
2007-05-31 21:34       ` 2.6.22-rc3-mm1 Rafael J. Wysocki
2007-05-31 17:53 ` 2.6.22-rc3-mm1 Michal Piotrowski
2007-05-31 18:08   ` 2.6.22-rc3-mm1 Michal Piotrowski
2007-05-31 18:31   ` Andrew Morton [this message]
2007-05-31 18:41     ` 2.6.22-rc3-mm1 Christoph Lameter
2007-05-31 18:53       ` 2.6.22-rc3-mm1 Andrew Morton
2007-05-31 18:57         ` 2.6.22-rc3-mm1 Christoph Lameter
2007-05-31 20:43 ` 2.6.22-rc3-mm1 Mariusz Kozlowski
2007-05-31 21:19   ` 2.6.22-rc3-mm1 Andrew Morton
2007-06-01 20:50     ` 2.6.22-rc3-mm1 Mariusz Kozlowski
2007-06-01 21:02       ` 2.6.22-rc3-mm1 Andrew Morton
2007-06-01 21:21         ` 2.6.22-rc3-mm1 Mariusz Kozlowski
2007-06-01 23:30         ` 2.6.22-rc3-mm1 Benjamin Herrenschmidt
2007-06-02  8:40         ` 2.6.22-rc3-mm1 Segher Boessenkool
2007-05-31 22:05 ` 2.6.22-rc3-mm1 - works-for-me and a meta-question Valdis.Kletnieks
2007-05-31 22:16   ` Andrew Morton
     [not found]   ` <6bffcb0e0705311527ge774f48s8014f5108556f651@mail.gmail.com>
2007-05-31 23:21     ` andrea
2007-05-31 23:13 ` 2.6.22-rc3-mm1 - page_mkwrite() breakage Mark Fasheh
2007-06-01  1:01   ` Nick Piggin
2007-06-01  1:24     ` Mark Fasheh
2007-06-01  1:34       ` Nick Piggin
2007-06-01  1:45         ` Mark Fasheh
2007-06-01  1:53           ` Nick Piggin
2007-06-01  5:20             ` Mark Fasheh
2007-06-01 22:01               ` Mark Fasheh
2007-06-01 22:25                 ` Andrew Morton
2007-06-01 22:33                   ` Mark Fasheh
2007-06-01 22:47                     ` Andrew Morton
2007-06-01 22:53                       ` Mark Fasheh
2007-06-01  2:01 ` 2.6.22-rc3-mm1 Arnaldo Carvalho de Melo
2007-06-01  2:12   ` 2.6.22-rc3-mm1 Andrew Morton
2007-06-01  2:24     ` 2.6.22-rc3-mm1 Arnaldo Carvalho de Melo
2007-06-01  3:52 ` 2.6.22-rc3-mm1 Michael Ellerman
2007-06-01  5:55   ` 2.6.22-rc3-mm1 Eric W. Biederman
2007-06-01 16:42 ` 2.6.22-rc3-mm1: IA64 make allnoconfig broken Mel Gorman
2007-06-01 17:00   ` Andrew Morton
2007-06-01 18:50     ` Mel Gorman
2007-06-01 20:55       ` [PATCH] Fix problem with IA64 make allnoconfig Mel Gorman
2007-06-02 13:57 ` 2.6.22-rc3-mm1: Xen compile error with X86_CMPXCHG=n Adrian Bunk
2007-06-28 23:36   ` Adrian Bunk
2007-06-29  3:21     ` Jeremy Fitzhardinge
2007-06-02 17:06 ` [-mm patch] fix XEN_BLKDEV_FRONTEND Makefile entry Adrian Bunk
2007-06-02 17:14 ` 2.6.22-rc3-mm1: __attribute__((weak)) considered harmful Adrian Bunk
2007-06-04 21:22   ` Andrew Morton
2007-06-04 23:52     ` Martin Peschke
2007-06-05  3:59       ` Russell King
2007-06-02 19:09 ` [-mm patch] the ASYNC_* options shouldn't be user visible Adrian Bunk
2007-06-04 16:19   ` Williams, Dan J
2007-06-03 20:54 ` [-mm patch] make drivers/firmware/dmi-id.c:dmi_id_init() static Adrian Bunk
2007-06-08  4:38   ` Greg KH
2007-06-03 20:54 ` [-mm patch] drivers/i2c/chips/ds1682.c: make code static Adrian Bunk
2007-06-04  8:15   ` Jean Delvare
2007-06-03 20:54 ` [-mm patch] make xpad_play_effect() static Adrian Bunk
2007-06-03 20:54 ` [-mm patch] fix the tea5761 tuner support Adrian Bunk
2007-06-04 18:00 ` 2.6.22-rc3-mm1 - pppd hanging in netdev_run_todo while holding mutex Valdis.Kletnieks
2007-06-06  6:14   ` Andrew Morton
2007-06-04 22:12 ` [-mm patch] e1000: #if 0 two functions Adrian Bunk
2007-06-04 22:13 ` [-mm patch] drivers/mmc/core/core.{h,c}: cleanups Adrian Bunk
2007-06-06 18:36   ` Pierre Ossman
2007-06-05  9:11 ` 2.6.22-rc3-mm1 Ingo Molnar
2007-06-05  9:18   ` 2.6.22-rc3-mm1 Ingo Molnar
2007-06-05  9:24   ` 2.6.22-rc3-mm1 Andrew Morton
2007-06-05  9:33     ` 2.6.22-rc3-mm1 Ingo Molnar
2007-06-05  9:39       ` 2.6.22-rc3-mm1 Ingo Molnar
2007-06-05  9:42         ` 2.6.22-rc3-mm1 Ingo Molnar
2007-06-05  9:45           ` 2.6.22-rc3-mm1 Ingo Molnar
2007-06-05  9:50             ` 2.6.22-rc3-mm1 Ingo Molnar
2007-06-05  9:56               ` 2.6.22-rc3 nmi watchdog hang Ingo Molnar
2007-06-10 18:10                 ` Björn Steinbrink
2007-06-18 12:11                   ` Ingo Molnar
2007-06-18 14:31                     ` Björn Steinbrink
2007-06-25  6:18                     ` Ingo Molnar
2007-06-25  6:59                       ` Ingo Molnar
2007-06-25  8:05                         ` [patch, 2.6.22-rc6] fix nmi_watchdog=2 bootup hang Ingo Molnar
2007-06-25  8:26                           ` Ingo Molnar
2007-06-25 12:45                             ` Björn Steinbrink
2007-06-25 12:49                               ` Jeremy Fitzhardinge
2007-06-25 13:06                                 ` Björn Steinbrink
2007-06-25 18:50                               ` [patch, 2.6.22-rc6] fix nmi_watchdog=2 bootup hang, take #2 Ingo Molnar
2007-06-25 12:40                           ` [patch, 2.6.22-rc6] fix nmi_watchdog=2 bootup hang Jeremy Fitzhardinge
2007-06-25 13:13                             ` Björn Steinbrink
2007-06-05 15:16 ` 2.6.22-rc3-mm1 Rusty Russell
2007-06-05 21:50 ` [-mm patch] kernel/power/disk.c: make code static Adrian Bunk
2007-06-05 22:10   ` Rafael J. Wysocki
2007-06-05 21:50 ` [-mm patch] kernel/sched{,_fair}.c: " Adrian Bunk
2007-06-06  6:54   ` Andrew Morton
2007-06-06  7:30     ` Ingo Molnar
2007-06-06 12:31       ` Adrian Bunk
2007-06-06  7:02   ` Ingo Molnar
2007-06-05 21:51 ` [-mm patch] kernel/lockdep_proc.c: make 2 functions static Adrian Bunk
2007-06-05 22:34   ` Peter Zijlstra
2007-06-05 21:51 ` [-mm patch] fs/proc/base.c: make a struct static Adrian Bunk
2007-06-06  7:32   ` Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2007-06-05 12:05 2.6.22-rc3-mm1 Zoltan Boszormenyi
2007-06-05 16:17 ` 2.6.22-rc3-mm1 Andrew Morton
2007-06-05 16:20   ` 2.6.22-rc3-mm1 Jeff Garzik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070531113155.1c6d7185.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.k.k.piotrowski@gmail.com \
    --cc=rjw@sisk.pl \
    --cc=takeuchi_satoru@jp.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox