From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BAA1EC4BA09 for ; Wed, 26 Feb 2020 01:48:19 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6BAC22082F for ; Wed, 26 Feb 2020 01:48:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lca.pw header.i=@lca.pw header.b="IOjaXzZe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6BAC22082F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lca.pw Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id DB49D6B0003; Tue, 25 Feb 2020 20:48:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D403E6B0005; Tue, 25 Feb 2020 20:48:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C06966B0006; Tue, 25 Feb 2020 20:48:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0100.hostedemail.com [216.40.44.100]) by kanga.kvack.org (Postfix) with ESMTP id A45016B0003 for ; Tue, 25 Feb 2020 20:48:18 -0500 (EST) Received: from smtpin27.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 7775940FE for ; Wed, 26 Feb 2020 01:48:18 +0000 (UTC) X-FDA: 76530593076.27.move39_6588ff905335d X-HE-Tag: move39_6588ff905335d X-Filterd-Recvd-Size: 4341 Received: from mail-qk1-f196.google.com (mail-qk1-f196.google.com [209.85.222.196]) by imf31.hostedemail.com (Postfix) with ESMTP for ; Wed, 26 Feb 2020 01:48:17 +0000 (UTC) Received: by mail-qk1-f196.google.com with SMTP id a2so1147578qko.12 for ; Tue, 25 Feb 2020 17:48:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=i+uuXL4ROSQrRMXJx8YzNpaMLWaT0zkBrSK5utVMd+4=; b=IOjaXzZe1BC2Kf4gSBwQNKcZFSNsnH3EsyM+t3Nhcp3RvkIjMByJLbob6MO0u0OJyp F0cNre9pQTozbRAjk+FU6TR7MQ0fvlr31Gl4ITEnzYchcxSgHKZ8acop3YebW97Z1ACP dqFvtrGYi6yD60HVlt0bsSA+Ji/moA0Zyp+sI9ZHieZi/lOrRRwRZx2rO+T/PkZj1R4k 6FPRBa1DdSYiUvZl3Pf0PvL/vAIya/1wy5gUUtGwOAYFQ04l2Ok4joyG62vk9UWBQoLw vSY9yZevZ9szs+od3YMepRRF9IiprTWYLffUgmR6+fA/w2KIa65H39+9ECrGS3OUsoQI 1EXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=i+uuXL4ROSQrRMXJx8YzNpaMLWaT0zkBrSK5utVMd+4=; b=pZ3Y1Zd4pmc4VYP+8365wfEJXhSYVz7Gmdc9jM1KsYn1ef0/9vgoLofEFKwrJFGQQS 8BDbHon/O+EhIiuiHF1FU2ZwXpK+XFrcnlUL70GVQGjcySj9WNXWyjwOfDZf8L/wmXms KMxyqtvz5oUsQTBfR7HW//bRF+b8N5NTUgggrHeDp3YHUPQ4mHsgNCIotS5D7lIkWPOF A9rdD3qrVd5B7d3ojJOtkTCMAC7Myv3VKArV6YjB8jt37P9NxxypJBAHpiTGBmTrc/xy us497VJOSDu7izkQkA2xZ/sBK6FNsk0pE8rJKcYD8Lq96cC+ziKPY0NAvrIW55BGh0aI a5lQ== X-Gm-Message-State: APjAAAWcf7bfVy2w2XW+sZCCh1gZtf9e/B+JzJB1pq3gOMP1+PpIk+Ep b75tMKwM3iVsw7qDzJrkWVRisw== X-Google-Smtp-Source: APXvYqxKRO9wzG3Q2qn/iSlNi92tbElxa8RdUi0qeQPKLsUNPOI+jzNCP9uUj4zuiyjS3Zt/3eW/ng== X-Received: by 2002:a37:a982:: with SMTP id s124mr2359705qke.496.1582681696856; Tue, 25 Feb 2020 17:48:16 -0800 (PST) Received: from [192.168.1.153] (pool-71-184-117-43.bstnma.fios.verizon.net. [71.184.117.43]) by smtp.gmail.com with ESMTPSA id o17sm245069qtj.80.2020.02.25.17.48.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Feb 2020 17:48:16 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\)) Subject: Re: [PATCH] mm/vmscan: fix data races at kswapd_classzone_idx From: Qian Cai In-Reply-To: <20200226012952.GV24185@bombadil.infradead.org> Date: Tue, 25 Feb 2020 20:48:14 -0500 Cc: Andrew Morton , elver@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Message-Id: <984ADA76-837B-4B07-88C5-0D82FE8FA9A5@lca.pw> References: <1582649726-15474-1-git-send-email-cai@lca.pw> <20200226012952.GV24185@bombadil.infradead.org> To: Matthew Wilcox X-Mailer: Apple Mail (2.3608.60.0.2.5) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: > On Feb 25, 2020, at 8:29 PM, Matthew Wilcox = wrote: >=20 > On Tue, Feb 25, 2020 at 11:55:26AM -0500, Qian Cai wrote: >> - if (pgdat->kswapd_classzone_idx =3D=3D MAX_NR_ZONES) >> - pgdat->kswapd_classzone_idx =3D classzone_idx; >> - else >> - pgdat->kswapd_classzone_idx =3D = max(pgdat->kswapd_classzone_idx, >> - classzone_idx); >> + if (READ_ONCE(pgdat->kswapd_classzone_idx) =3D=3D MAX_NR_ZONES = || >> + READ_ONCE(pgdat->kswapd_classzone_idx) < classzone_idx) >> + WRITE_ONCE(pgdat->kswapd_classzone_idx, classzone_idx); >> + >> pgdat->kswapd_order =3D max(pgdat->kswapd_order, order); >=20 > Doesn't this line have the exact same problem you're "solving" above? Good catch. I missed that. >=20 > Also, why would you do this crazy "f(READ_ONCE(x)) || g(READ_ONCE(x))? > Surely you should be stashing READ_ONCE(x) into a local variable? Not a bad idea. >=20 > And there are a _lot_ of places which access kswapd_classzone_idx > without a lock. Are you sure this patch is sufficient? I am not sure, but KCSAN did not complain about other places after = running extended period of testing, so I will look into once other places show up later.