Messages in this thread | | | From | Vitaly Wool <> | Date | Fri, 15 Sep 2017 10:34:53 +0200 | Subject | Re: [PATCH] z3fold: fix stale list handling |
| |
Hi Andrew,
2017-09-14 23:15 GMT+02:00 Andrew Morton <akpm@linux-foundation.org>: > On Thu, 14 Sep 2017 15:59:36 +0200 Vitaly Wool <vitalywool@gmail.com> wrote: > >> Fix the situation when clear_bit() is called for page->private before >> the page pointer is actually assigned. While at it, remove work_busy() >> check because it is costly and does not give 100% guarantee anyway. > > Does this fix https://bugzilla.kernel.org/show_bug.cgi?id=196877 ? If > so, the bugzilla references and a reported-by should be added.
I wish it did but it doesn't. The bug you are referring to happens with the "unbuddied" list, and the current version of z3fold_reclaim_page() just doesn't have that code. This patch fixes the processing of "stale" lists, with stale lists having been introduced with the per-CPU unbuddied lists patch, which is pretty recent. To fix https://bugzilla.kernel.org/show_bug.cgi?id=196877, we'll have to either backport per-CPU unbuddied lists plus the two fixes, or propose a separate fix.
> What are the end-user visible effects of the bug? Please always > include this info when fixing bugs.
If page is NULL, clear_bit for page->private will result in a kernel crash.
> Should this fix be backported into -stable kernels?
No, this patch fixes the code that is not in any released kernel yet.
~vitaly
| |