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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E36CC47DD9 for ; Sat, 23 Mar 2024 02:11:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D5BC6B007B; Fri, 22 Mar 2024 22:11:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 985A56B0085; Fri, 22 Mar 2024 22:11:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 84DAB6B0087; Fri, 22 Mar 2024 22:11:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 74EFE6B007B for ; Fri, 22 Mar 2024 22:11:27 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id F12461215A8 for ; Sat, 23 Mar 2024 02:11:26 +0000 (UTC) X-FDA: 81926676972.07.9D2F582 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) by imf13.hostedemail.com (Postfix) with ESMTP id 0E57A20008 for ; Sat, 23 Mar 2024 02:11:24 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OjcjbKi2; spf=pass (imf13.hostedemail.com: domain of akiyks@gmail.com designates 209.85.216.54 as permitted sender) smtp.mailfrom=akiyks@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711159885; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ytYwAkh4AZyvnFMvyg0Zf5hpxuIrcf2upm5pBUrao8c=; b=s3p+a1LZmiXVxLI9usCfJDQWYnUWMIxpdMxz4dfVc7LdQVPXTE4EnnDAI1cWnIdXDq1eKd rEKHFAK/Ocmi2xwoDqNHlcU7+PXGHY4rV0vRfWdiF1rp0IrwgSC8cW2fxgBO0658RrVTYR v233USJMSaZcheh2JUwn00vja3kpAzE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711159885; a=rsa-sha256; cv=none; b=r0f4O6jWLbill3Ti6deCdvPCvSfng9U1yqXwEdZTu9WwiVWTiOh03JQ0AkDTinF7gzOIZ2 cE9lSXrTk7GSaj0lLTV8W1dZvgOGJGzm0WAzQllHq3KMIc7Rl3w5MFTI8QEVfVjU7Z9xYK CABE/9g3jskh8tI1qrDPmD58cg5fmLA= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OjcjbKi2; spf=pass (imf13.hostedemail.com: domain of akiyks@gmail.com designates 209.85.216.54 as permitted sender) smtp.mailfrom=akiyks@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-29df0ca87d1so2128317a91.2 for ; Fri, 22 Mar 2024 19:11:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711159884; x=1711764684; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language:subject :references:cc:to:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=ytYwAkh4AZyvnFMvyg0Zf5hpxuIrcf2upm5pBUrao8c=; b=OjcjbKi21rbfrpEpgl8MKlDbeGQ/NPiQ8kenUI7GG0816rIf9DpVbbkBKlUuISVSR5 rOWVT68dzx1ecfqBOAqFsaZvC0ScrBtB53iBmm3YShx9WOWUa/QiroSE3/APBsMVEc4D l9nTzwpCxwIs9LXanUejRbtlaY3BW0zB/JzvlE6HMdLGoyLMvYyp8JQfjJKwoxeks/eJ XbeXHXlo55ueihFCTu6Wa8YFvWnrirxjlvYyDb9Q3fQsY6GTUVZ0S82pAsu0Hh9SQLcp OCilCixkPw32s5yerfaEejQOEqoIj9yc9ZcSo0iesI6aNUpY5SiHqKLwLwG7PNDBXYiF /4jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711159884; x=1711764684; h=content-transfer-encoding:in-reply-to:from:content-language:subject :references:cc:to:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ytYwAkh4AZyvnFMvyg0Zf5hpxuIrcf2upm5pBUrao8c=; b=SNrjiE1bp9plv/Do07u2O+Z4AO46q37NQL2Co4vOURc862jlQaOC1bODlyCg6hZ9ai h7ZFDzhzAJBiEU9FOee/006nrJw3X+xLCujJZQe3Fio3wt/HTzBdoukfJE6cQth8TMfZ mXf80YQv7XkdmAZM0VWIjM7tPwzKtI/L1IOLYLHJWZOi+KprAC2loFQWsVNWuhz71JIi s3cvXTD2QYPfmnt3RLrlsxRkhfVwKpIVHTbPlMHmcuuUP3Pce0z/ctEFLKTt8EG8Sc74 jpuTRyEsfBJaZVkigOjWrTtoT5Eh8g6jcocnlQ62WqjDD2sp5X/nqBacrqJn/B5Lecd4 Ugag== X-Forwarded-Encrypted: i=1; AJvYcCVhe0VCCKkWAQPphpYAZTVvXIGlitobeUpZvAe+TBX0nhSUkWa/XhKgYA4pZmfOGrHxw9HfC+u2bSEyVZpQI24WuCQ= X-Gm-Message-State: AOJu0YyiyId3tkhZlPpAXtAhWXz3uzXOTAZcfG6Axi4oTnN79lHJpWpk +QMbtfdmnAglqo43q/iBRlEQ23wbTgZooQV095t3Z0PtI73b7L7X X-Google-Smtp-Source: AGHT+IFk5+cCcipKpU/T74eH7Gg0+R66IsfBKo81modkv34Bn3w33lURjWrD3uBnnCA0OwiRFUpXaw== X-Received: by 2002:a05:6a20:3ca2:b0:1a3:a669:747e with SMTP id b34-20020a056a203ca200b001a3a669747emr1806032pzj.12.1711159883651; Fri, 22 Mar 2024 19:11:23 -0700 (PDT) Received: from [10.0.2.15] (KD106167171201.ppp-bb.dion.ne.jp. [106.167.171.201]) by smtp.gmail.com with ESMTPSA id rs12-20020a17090b2b8c00b00298e11b600dsm2594669pjb.27.2024.03.22.19.11.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 22 Mar 2024 19:11:11 -0700 (PDT) Message-ID: Date: Sat, 23 Mar 2024 11:11:09 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ying.huang@intel.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, "Paul E. McKenney" , ryan.roberts@arm.com, chrisl@kernel.org References: <87r0g3q9cz.fsf_-_@yhuang6-desk2.ccr.corp.intel.com> Subject: Re: Can you help us on memory barrier usage? (was Re: [PATCH v4 4/6] mm: swap: Allow storage of all mTHP orders) Content-Language: en-US From: Akira Yokosawa In-Reply-To: <87r0g3q9cz.fsf_-_@yhuang6-desk2.ccr.corp.intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 0E57A20008 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: unded83dpcbx8f6tq5fimz8no4xzx3kb X-HE-Tag: 1711159884-308109 X-HE-Meta: U2FsdGVkX1/pAv2brQIO/lOHkMsrq1MQo/KKpC/MpuBP2OtJSsshWp7fcYzWq6vG7FH8SFlf1vNQGgdho/FBgDzW1RZVNh9jGn4/wKvaMUcAvespo6SiyBneLlCytRjbnsEGm0cv64VsxZy3arLB6tYV2zmOZykXFJ/R4/NmNaBcs6FYJEGd6PAddaqlLPbCYOdVi3OBvRFHhPX6wyjOtqZKMEsLEE6VnwwAr+4UebHLLGKwN9vfly9ZOHg5Npypat2qbhZptl6v24+bMY9Dms1bQNbjLwr2HpraN8DXc4gwn+Y5FUehYudvxVfxhHkGKJNMcQehKX0jtW1Yay0uAFFxYdEKCiI7h8JB7PzZ2WuMi/IQayJyqAcCNmmkrXLKiRErwbA1xowA+yc39qBpNKda2uZyVyutG0vW8VXB+DwmOcz8gKhzSy5MmFaONcMDRZyFuWFpGY3/W6d0O+/OLCMFe7PhTdU+GDRKT0i3T0kEyA3bVqXzgarDHEmpbpmawbrOa96Fg4zy55OxitiRedAPq6r9H/zH6rGtzFqfPZr6Ky9vz0FiDkiquMwgkKtz+F1dHxSe2RykXf1cnSAskYsdhQP7d7QQ0B13TT4FuAW2pM0KPpsYrblU9ft96/mtiWmk5VdeVmqdgnOvGLIY2q4h0yEQ309y1Gm6R8u6whiFSiSf7n0PT+mMdTbEmTGKZHQTpBIfALOMsBRLgMzStzWGXGrDY+IqeXSD8mh+mPoKTgp8TyfGMXsaJvVZvc03aXcZfnJ9rYa6kDT3cm/Y8GPZ+lV7dmGmY4vpKgQEnm8t+0GBhQjdd2vidPILZL3CXi98H9oyPZcZm1wsSwg3AKoUcDLJAiW8lfAq0CRDNFbpF9nZr1wn3Ni6c04WzQGqbpcwrst0LwdNOprOdGKvIoXfQpdPHtpaYmchSyfQyfZOUIDKfEUSsTCJj71GLflm5J4uwa9TYqdLoNfPuiV +iQsoRyB yv3eGmWdFeofNIpq1qDF2G7Nm0nHoHPztNHm9jg6eJSIFxXDJ4YL3GKLXPgTqtGfquKJbTWTBqr/nCU1OKparch9xKrn+nl9GRuC57NTtDkGaM1v0vHvI2uIqW+4fQrydljgy2G2A4ZCVw8rI155xdKGJxSeossW51Tue9Zb8EmOAAXvqJA+N/vXkxqAHilm0t+jaaSacn03L+sBi/IfCZDS4vtCjfsAGgW1r/Ycwj1kYXvSKEUuFDAxSjSlTDJnE+LKJmWljxomjBrX+ecgKs0bQ7vEq8a911PFk3I2x20yN9uikcT7/pD/VkDDQjXWASluy51uInsLi356FPTdIusA4V5CzQoxm3T6Q48kx28mzbj19hiRY2pI/b49SvP9ibK0zZjGo7o8MbH7vW8WVScqsYlTFwnoentB84SAISKWo5rx+OLt935+XWEneMdSRDr6GspTMSbFEG6p50lNzZqRA/l7I2PHrTodSIjgjBE1qgMLXis6dxaaSE8DGeh8qaiEXjukTO1JC7HgUnxmnChWphABpiDXcz+6nd0Gwf+zOKrG7xyOuSObM5NGZnYaUxmft X-Bogosity: Ham, tests=bogofilter, spamicity=0.000283, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: [Use Paul's reachable address in CC; trimmed CC list, keeping only those who have responded so far.] Hello Huang, Let me chime in. On Fri, 22 Mar 2024 06:19:52 -0700, Huang, Ying wrote: > Hi, Paul, > > Can you help us on WRITE_ONCE()/READ_ONCE()/barrier() usage as follows? > For some example kernel code as follows, > > " > unsigned char x[16]; > > void writer(void) > { > memset(x, 1, sizeof(x)); > /* To make memset() take effect ASAP */ > barrier(); > } > > unsigned char reader(int n) > { > return READ_ONCE(x[n]); > } > " > > where, writer() and reader() may be called on 2 CPUs without any lock. > It's acceptable for reader() to read the written value a little later. > Our questions are, > > 1. because it's impossible for accessing "unsigned char" to cause > tearing. So, WRITE_ONCE()/READ_ONCE()/barrier() isn't necessary for > correctness, right? > > 2. we use barrier() and READ_ONCE() in writer() and reader(), because we > want to make writing take effect ASAP. Is it a good practice? Or it's > a micro-optimization that should be avoided? Why don't you consult Documentation/memory-barriers.txt, especially the section titled "COMPILER BARRIER"? TL;DR: barrier(), WRITE_ONCE(), and READ_ONCE() are compiler barriers, not memory barriers. They just restrict compiler optimizations and don't have any effect with regard to "make writing take effect ASAP". If you have further questions, please don't hesitate to ask. Regards, Akira (a LKMM Reveiwer). > > -- > Best Regards, > Huang, Ying