Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp567119ybl; Wed, 29 Jan 2020 05:49:01 -0800 (PST) X-Google-Smtp-Source: APXvYqyunkIS4IjK4uOPpRXGrdlKYAHIkcVoJFNDIhu1PuJyRkIhJ7j7WDQr+S3Fp+/0i4KBs+2m X-Received: by 2002:aca:b2c5:: with SMTP id b188mr6469993oif.163.1580305740778; Wed, 29 Jan 2020 05:49:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580305740; cv=none; d=google.com; s=arc-20160816; b=wX/VaOtQuBSPqLY43CZSHNjNJPNrwDjNvKK8t4o1uz+dI6+rBg01cmw5piWegGyVLm ckFcdP14GA32f3zGb9vOTUr6GhiQf+RvXmyhs69qQWDysBQwwvG5SI5SmBx5qSVHnzfc Jq/XJzT/ItTgMPjHJAKBgyXG+SnYzquGXR7rpeoboX0l1lKoDLRX2dk3B43RmL7iNXsB XJoiKstdCHPGEzO/97XiDz6bDcPBZIX5kGJb6Rrr99WJs8+pk+Lft8lMNI2ieDnAvN/D +CkHlLCBdbU1OWB9ePZoL0ATdxPPtT0nT3hjq3j5Z19ZwNh+BFmmMeXWRqu6IF0PukYa NfwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=pOyJw9rOWOMz8gQuHotQrjJTw2YBXZx8xzUyOWnDAcg=; b=XgKBdk7zBlNUzI4fHaazXElZi8KjbrWNPAwOJ2dec2eE1AuZUs4DAkVu1yyJwtI5eP M2osleFkXj7AB287/NS/KZTBnLiGuSZp88GjEauC6BfY6uVAsuzu5OibeXBqFvzKtk47 BFIWAa5hDTvtYdDTOOfPHs448r263LmxSBncBD22VOGZDo4KECmHGfwHMkxuLpvVgqZq pEoOyL+OskSSG2QzlELc16vWTwbhXuKfdL+oTYb/zxAHU5JSlOLX2YQAMzEoEMrv25MP hOECTc4PB0l44vEnOK5L/odgrzd7dnr8/n9K1GQEnpGeqlrjKYJmdTIYbQQ4A6Pej3HK y80g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a13si1151189otq.201.2020.01.29.05.48.48; Wed, 29 Jan 2020 05:49:00 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726528AbgA2Nrx (ORCPT + 99 others); Wed, 29 Jan 2020 08:47:53 -0500 Received: from www262.sakura.ne.jp ([202.181.97.72]:60830 "EHLO www262.sakura.ne.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726184AbgA2Nrx (ORCPT ); Wed, 29 Jan 2020 08:47:53 -0500 Received: from fsav110.sakura.ne.jp (fsav110.sakura.ne.jp [27.133.134.237]) by www262.sakura.ne.jp (8.15.2/8.15.2) with ESMTP id 00TDlpWv007890; Wed, 29 Jan 2020 22:47:51 +0900 (JST) (envelope-from penguin-kernel@i-love.sakura.ne.jp) Received: from www262.sakura.ne.jp (202.181.97.72) by fsav110.sakura.ne.jp (F-Secure/fsigk_smtp/550/fsav110.sakura.ne.jp); Wed, 29 Jan 2020 22:47:51 +0900 (JST) X-Virus-Status: clean(F-Secure/fsigk_smtp/550/fsav110.sakura.ne.jp) Received: from [192.168.1.9] (softbank126040062084.bbtec.net [126.40.62.84]) (authenticated bits=0) by www262.sakura.ne.jp (8.15.2/8.15.2) with ESMTPSA id 00TDlp73007874 (version=TLSv1.2 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 29 Jan 2020 22:47:51 +0900 (JST) (envelope-from penguin-kernel@i-love.sakura.ne.jp) Subject: Re: [PATCH] mm/page_counter: fix various data races To: Marco Elver Cc: Qian Cai , Dmitry Vyukov , Michal Hocko , Andrew Morton , Johannes Weiner , Linux Memory Management List , LKML References: <20200129105224.4016-1-cai@lca.pw> <20200129120302.GJ24244@dhcp22.suse.cz> <59f892d0-5fc4-ae32-ce65-5a688d9180c8@I-love.SAKURA.ne.jp> From: Tetsuo Handa Message-ID: <9575c1cc-1669-9492-d657-ad4ba6494e88@i-love.sakura.ne.jp> Date: Wed, 29 Jan 2020 22:47:45 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020/01/29 21:21, Marco Elver wrote: >> By the way, can READ_ONCE()/WRITE_ONCE() really solve this warning? >> The link above says read/write on the same location ( mm/page_counter.c:129 ). >> I don't know how READ_ONCE()/WRITE_ONCE() can solve the race. > > It avoids the *data* race, with *_ONCE telling the compiler to not > optimize the accesses in concurrency-unfriendly ways. Since *_ONCE is > used, it conveys clear intent that the code here is meant to be > concurrent, and KCSAN stops complaining (and assumes that the *logic* > is correct). I see. Unlike c->failcnt++ which involves read-modify-write, *_ONCE() can be used for simple read (like c->watermark) or simple write (like c->watermark = new) case.