Badari, I think you used SLUB. If so, page_cgroup's notifier callback was not called and newly allocated page's page_cgroup wasn't allocated. This is a fix. (notifier saw STOP_HERE flag added by slub's notifier.) I'm now testing modified kernel, which does alloc/free page_cgroup by notifier. (Usually, all page_cgroups are from bootmem and not freed. so, modified a bit for test) And I cannot reproduce panic. I think you do "real" memory hotplug other than online/offline and saw panic caused by this. Is this slub's behavior intentional ? page_cgroup's notifier has lower priority than slub, now. Thanks, -Kame == notifier callback's notifier_from_errno() just works well in error route. (It adds mask for "stop here") Hanlder should return NOTIFY_OK in explict way. Signed-off-by:KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> --- mm/page_cgroup.c | 5 ++++- mm/slub.c | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) Index: mmotm-2.6.28-Nov10/mm/slub.c =================================================================== --- mmotm-2.6.28-Nov10.orig/mm/slub.c +++ mmotm-2.6.28-Nov10/mm/slub.c @@ -3220,8 +3220,10 @@ static int slab_memory_callback(struct n case MEM_CANCEL_OFFLINE: break; } - - ret = notifier_from_errno(ret); + if (ret) + ret = notifier_from_errno(ret); + else + ret = NOTIFY_OK; return ret; } Index: mmotm-2.6.28-Nov10/mm/page_cgroup.c =================================================================== --- mmotm-2.6.28-Nov10.orig/mm/page_cgroup.c +++ mmotm-2.6.28-Nov10/mm/page_cgroup.c @@ -216,7 +216,10 @@ static int page_cgroup_callback(struct n break; } - ret = notifier_from_errno(ret); + if (ret) + ret = notifier_from_errno(ret); + else + ret = NOTIFY_OK; return ret; } --
| Jeff Garzik | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Christoph Hellwig | Re: [malware-list] [RFC 0/5] [TALPA] Intro to a linux interface for on access scan... |
| Heiko Carstens | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Arjan van de Ven | Re: [GIT]: Networking |
| Jens Axboe | Re: [BUG] New Kernel Bugs |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Emmanuel Dreyfus | fixing send(2) semantics (kern/29750) |
| Christos Zoulas | Re: Melting down your network [Subject changed] |
| Juan RP | Changing the I/O scheduler on-the-fly |
| Emmanuel Dreyfus | Re: fixing send(2) semantics (kern/29750) |
