Messages in this thread |  | | | Date | Fri, 8 Jun 2012 19:01:52 +0200 | | From | Oleg Nesterov <> | | Subject | Re: [patch 12/12] mm: correctly synchronize rss-counters at exit/exec |
| |
On 06/08, Konstantin Khlebnikov wrote: > > Oleg Nesterov wrote: >> On 06/08, Konstantin Khlebnikov wrote: >>> >>> As result you can see "BUG: Bad rss-counter state mm:ffff88040783a680 idx:1 val:-1" in dmesg >>> >>> There left only one problem: nobody calls sync_mm_rss() after put_user() in mm_release(). >> >> Both callers call sync_mm_rss() to make check_mm() happy. But please >> see the changelog, I think we should move it into mm_release(). See >> the patch below (on top of v2 I sent). I need to recheck. > > Patch below broken: it removes one hunk from kernel/exit.c twice. > And it does not add anything into mm_release().
Yes, sorry. But I guess you understand the intent, mm_release() should simply do sync_mm_rss() after put_user(clear_child_tid) unconditionally.
If task->mm == NULL but task->rss_stat, then there is something wrong and probably OOPS makes sense.
Oleg.
|  |