From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753500AbcARC1T (ORCPT ); Sun, 17 Jan 2016 21:27:19 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:59029 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753427AbcARC1R (ORCPT ); Sun, 17 Jan 2016 21:27:17 -0500 Message-ID: <1453084012.2519.98.camel@decadent.org.uk> Subject: Re: [lkp] [mm, vmstat] 373ccbe592: BUG: unable to handle kernel From: Ben Hutchings To: Tetsuo Handa , ying.huang@linux.intel.com, mhocko@suse.com Cc: lkp@01.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, arekm@maven.pl, js1304@gmail.com, clameter@sgi.com, tj@kernel.org, torvalds@linux-foundation.org Date: Mon, 18 Jan 2016 02:26:52 +0000 In-Reply-To: <201601081932.GCE21843.HFQOtOSLFJFOVM@I-love.SAKURA.ne.jp> References: <87r3hsg4io.fsf@yhuang-dev.intel.com> <201601081932.GCE21843.HFQOtOSLFJFOVM@I-love.SAKURA.ne.jp> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-FyZ3BJNhyV4cCG54RO8g" X-Mailer: Evolution 3.18.3-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.247 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-FyZ3BJNhyV4cCG54RO8g Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2016-01-08 at 19:32 +0900, Tetsuo Handa wrote: [...] > Thank you. I think that start_shepherd_timer() started shepherd item > and vmstat_shepherd() is called before vmstat_wq =3D alloc_workqueue() is > called. We are sometimes too late to allocate vmstat_wq workqueue. > Please try below one. >=20 > ---------- > diff --git a/mm/vmstat.c b/mm/vmstat.c > index 4ebc17d..6478929 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -1545,12 +1545,12 @@ static struct notifier_block vmstat_notifier =3D > =C2=A0static int __init setup_vmstat(void) > =C2=A0{ > =C2=A0#ifdef CONFIG_SMP > + vmstat_wq =3D alloc_workqueue("vmstat", WQ_FREEZABLE|WQ_MEM_RECLAIM, 0)= ; > =C2=A0 cpu_notifier_register_begin(); > =C2=A0 __register_cpu_notifier(&vmstat_notifier); > =C2=A0 > =C2=A0 start_shepherd_timer(); > =C2=A0 cpu_notifier_register_done(); > - vmstat_wq =3D alloc_workqueue("vmstat", WQ_FREEZABLE|WQ_MEM_RECLAIM, 0)= ; > =C2=A0#endif > =C2=A0#ifdef CONFIG_PROC_FS > =C2=A0 proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operat= ions); > ---------- >=20 > We need to backport this fix to stable since this commit already went to = 3.2.75. Thanks. =C2=A0In 3.2.75 this precise race doesn't seem to exist, but I did put the alloc_workqueue() after register_cpu_notifier() whereas it should go before. Ben. --=20 Ben Hutchings A free society is one where it is safe to be unpopular. - Adlai Stevenson --=-FyZ3BJNhyV4cCG54RO8g Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVpxNbOe/yOyVhhEJAQrlvQ/+OH+6n+NXoLUc3aQPwUvwWbEvxxozwXYJ gl34RRTJEN4puOmfRTTX5t0SMVyeEwLElLuVJNBWLKwhmxHxyTaO+XEOhq+/JK0d 61se5qJEu+fXZ15nqCHfw0a7kmly98yZd8C63PhOrfBZ211Qps7/1GxwbheIz1nU BUDqfzRwgD8SBSj5C7ZnyLkNZ2O6zdE/Yg9NLrXfKGU6K0bsGEAs75r6W+Cc29w9 gsuKjdpClyn9DdhgAkErmlouXBtIXFNSfsNIo2XF4Nz5G9c7U10ufB/w0slsIywa skHoaDUcL3wRgeqFd4ElQqCvqGa43+Q5L5cUCB7eWdFn4ECMZmb9y8rTqcpkl+Fe rIFGe9EEdVLfbBeGQz/q5M0hwv30XZtb6SbvIEOxFclv8zxrlaCz2SBWMa+GMkvg 7EKDUEZwvRjJKTuAhqNdnBlQpUt11YPFZ6TDfo15pcyFTT+5q4DymboSyEZ2tvet 4huJ9ReV9KVgUJ9tYehDNRRjX7h+lUFf9LeBT0WeZui6/5di68R78tHfSX0sqwxk XE7fEmV+MVwFc0xpNT+cnOEF2Vf7ZIuCD4kfB6LCXcc8KJmPDsZ/R9Ddd+SB/vJh LvH6RTWmRTcr1NwiGKGERB4pKAq8ryNNrP+EtoGhg8YMz6VL9AsuruYWrDqbZc8W foyZZRyLtxo= =ENFZ -----END PGP SIGNATURE----- --=-FyZ3BJNhyV4cCG54RO8g--