From: Balbir Singh <balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: Hugh Dickins <hugh-DTz5qymZ9yRBDgjK7y7TUQ@public.gmane.org>
Cc: Linux Containers
<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
Paul Menage <menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
Subject: Re: memrlimit controller merge to mainline
Date: Tue, 05 Aug 2008 10:23:04 +0530 [thread overview]
Message-ID: <4897DCB0.4020105@linux.vnet.ibm.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0808042226430.4300-popGQ1T0qN76K7/ahGyk6A@public.gmane.org>
Hugh Dickins wrote:
> On Tue, 5 Aug 2008, Balbir Singh wrote:
>> Hugh Dickins wrote:
>> [snip]
>>> BUG: unable to handle kernel paging request at 6b6b6b8b
>>> IP: [<7817078f>] memrlimit_cgroup_uncharge_as+0x18/0x29
>>> Pid: 22500, comm: swapoff Not tainted (2.6.26-rc8-mm1 #7)
>>> [<78161323>] ? exit_mmap+0xaf/0x133
>>> [<781226b1>] ? mmput+0x4c/0xba
>>> [<78165ce3>] ? try_to_unuse+0x20b/0x3f5
>>> [<78371534>] ? _spin_unlock+0x22/0x3c
>>> [<7816636a>] ? sys_swapoff+0x17b/0x37c
>>> [<78102d95>] ? sysenter_past_esp+0x6a/0xa5
>> I am unable to reproduce the problem,
>
> Me neither, I've spent many hours trying 2.6.27-rc1-mm1 and then
> back to 2.6.26-rc8-mm1. But I've been SO stupid: saw it originally
> on one machine with SLAB_DEBUG=y, have been trying since mostly on
> another with SLUB_DEBUG=y, but never thought to boot with
> slub_debug=P,task_struct until now.
>
Unfortunately, I've not tried on 32 bit and not at all with SLAB_DEBUG=y. I'll
give the latter a trial run and see what I get.
>> but I do have an initial hypothesis
>>
>> CPU0 CPU1
>> try_to_unuse
>> task 1 stars exiting look at mm = task1->mm
>> .. increment mm_users
>> task 1 exits
>> mm->owner needs to be updated, but
>> no new owner is found
>> (mm_users > 1, but no other task
>> has task->mm = task1->mm)
>> mm_update_next_owner() leaves
>>
>> grace period
>> user count drops, call mmput(mm)
>> task 1 freed
>> dereferencing mm->owner fails
>
> Yes, that looks right to me: seems obvious now. I don't think your
> careful alternation of CPU0/1 events at the end matters: the swapoff
> CPU simply dereferences mm->owner after that task has gone.
>
> (That's a shame, I'd always hoped that mm->owner->comm was going to
> be good for use in mm messages, even when tearing down the mm.)
>
The problem we have is that tasks are independent of mm_struct's (in some ways)
and are associated almost like a database associates two entities through keys.
>> I do have a potential solution in mind, but I want to make sure my
>> hypothesis is correct.
>
> It seems wrong that memrlimit_cgroup_uncharge_as should be called
> after mm->owner may have been changed, even if it's to something safe.
> But I forget the mm/task exit details, surely they're tricky.
>
The fix would be to uncharge when a new owner can no longer be found (I am yet
to code/test it though).
> By the way, is the ordering in mm_update_next_owner the best?
> Would there be less movement if it searched amongst siblings before
> it searched amongst children? Ought it to make a first pass trying
> to stay within the same cgroup?
Yes, we need to make a first pass at keeping it in the same cgroup. You might be
right about the sibling optimization.
--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL
next prev parent reply other threads:[~2008-08-05 4:53 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-25 8:14 memrlimit controller merge to mainline Paul Menage
[not found] ` <6599ad830807250114h7ab0fdb1u98c0968961647642-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-25 8:25 ` Andrew Morton
[not found] ` <20080725012519.a5fed7d6.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-07-25 12:56 ` Balbir Singh
2008-07-25 12:57 ` Balbir Singh
2008-07-25 9:06 ` Hugh Dickins
[not found] ` <Pine.LNX.4.64.0807251004570.31120-popGQ1T0qN76K7/ahGyk6A@public.gmane.org>
2008-07-25 13:32 ` Balbir Singh
[not found] ` <4889D5EE.4010601-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-07-25 17:38 ` Hugh Dickins
[not found] ` <Pine.LNX.4.64.0807251820440.20617-popGQ1T0qN76K7/ahGyk6A@public.gmane.org>
2008-07-25 19:08 ` Balbir Singh
2008-07-25 14:06 ` Paul Menage
[not found] ` <6599ad830807250706t23e483b5j18d683c0470d1d22-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-25 16:46 ` Hugh Dickins
[not found] ` <Pine.LNX.4.64.0807251715070.12089-popGQ1T0qN76K7/ahGyk6A@public.gmane.org>
2008-07-25 19:24 ` Paul Menage
[not found] ` <6599ad830807251224g218e17faj5c8224ba398a51c8-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-30 0:31 ` Hugh Dickins
[not found] ` <Pine.LNX.4.64.0807300117210.14699-popGQ1T0qN76K7/ahGyk6A@public.gmane.org>
2008-07-30 0:33 ` Paul Menage
2008-07-25 19:28 ` Balbir Singh
[not found] ` <488A294B.4090609-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-07-30 0:48 ` Hugh Dickins
2008-07-29 6:01 ` KAMEZAWA Hiroyuki
[not found] ` <20080729150111.f879c989.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-07-30 0:16 ` Hugh Dickins
[not found] ` <Pine.LNX.4.64.0807300113200.14699-popGQ1T0qN76K7/ahGyk6A@public.gmane.org>
2008-07-30 1:17 ` KAMEZAWA Hiroyuki
[not found] ` <20080730101719.5eb18635.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-07-30 2:16 ` KAMEZAWA Hiroyuki
2008-07-30 2:52 ` KAMEZAWA Hiroyuki
[not found] ` <20080730115226.3fec2540.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-07-30 3:11 ` KAMEZAWA Hiroyuki
[not found] ` <20080730121115.b1e3a7be.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-07-30 4:14 ` KAMEZAWA Hiroyuki
[not found] ` <20080730131407.526d323b.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-07-30 4:58 ` Daisuke Nishimura
[not found] ` <20080730135803.a7750e21.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2008-07-30 5:11 ` KAMEZAWA Hiroyuki
[not found] ` <20080730141147.837446aa.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-07-30 5:41 ` Daisuke Nishimura
2008-07-30 5:40 ` KAMEZAWA Hiroyuki
2008-07-30 4:23 ` Daisuke Nishimura
2008-08-04 19:04 ` Balbir Singh
[not found] ` <489752AA.9060500-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-08-04 21:52 ` Hugh Dickins
[not found] ` <Pine.LNX.4.64.0808042226430.4300-popGQ1T0qN76K7/ahGyk6A@public.gmane.org>
2008-08-05 4:53 ` Balbir Singh [this message]
2008-08-10 17:04 ` Balbir Singh
2008-07-25 12:30 ` Balbir Singh
[not found] ` <4889C77F.5090909-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-07-25 13:47 ` Joe MacDonald
2008-07-25 14:11 ` Paul Menage
[not found] ` <6599ad830807250711m4f34c447oc259b0af40f68da4-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-25 16:07 ` Balbir Singh
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=4897DCB0.4020105@linux.vnet.ibm.com \
--to=balbir-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=hugh-DTz5qymZ9yRBDgjK7y7TUQ@public.gmane.org \
--cc=menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.