Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1689728yba; Thu, 4 Apr 2019 16:24:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqxWYIpgcaLz3fpkwCbTp9JZoS1+pMPyf8toboGMbC8Tt4hbu3ncQ9RXWpmuEPfzle5M1VxQ X-Received: by 2002:a63:66c1:: with SMTP id a184mr8563389pgc.60.1554420260138; Thu, 04 Apr 2019 16:24:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554420260; cv=none; d=google.com; s=arc-20160816; b=Vf7cH2YDeIfI18gLfPuavwBqJo8+Lpns22dcGf6FqsZq8kbvW1x1nA+jIfMfM+2haY mLsyR/BuIUiMa4jpU26rEcL81o2KOULWTq19/x3Ax9eQFdIeGwpr0a8S5Yp+MvVlr9+o ERDpE0DppvbNNvuqt8JwFZvPGcjt6HgCnLUsTLHK6DKvVNC9hn88UtvcG9auPVzkmTZL jfCEu4BkcGYXSnMJxZ/a1FXdPNFvb+Idc+X0rSb8SZMIepHSU3wPhnsBuRppS/bYyE6S +H+nbFxq3rDvToigm6Pq+HR+e3Pt4EooF29hdoYYRa6gbByNI7KsKUzm2KJcRemc6tKu HvRg== 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:dkim-signature; bh=AJP9ku+4VTvbuY88ZKcwjNfIqdPNT6HLBZK//U6fpF8=; b=UZqVjOR42cWCdUW55QGPDXFvjErZZUd/3acYgVY2kfA6E1uklgG811w5fLb9yfCnx4 VNzq5PvBOIAR1KP2/etT0Q31b541Bqfh9tLRGV/nMzwtAP5KbPBPwnBIqBleT7RBVn4y +upBOpA68OF3lMUM5j1+wG603mh6HlVGtXDLO4f8OkkBRpnAovmyVepIm9fqz6IDuzFd 04T2Kg0BarU0rhRJC0JiXMfBMywb3t9e71Qzcwuene7IV46N+XCmgbBbRtABqKbQz4Pl Eww7+mgAEnuV+cQJCuMLcV2cu2ZNybK/7CfnVjntvx7X5rSm5RSSWqhMfWVpHXoe75wQ Gwzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="lxW/7Lw7"; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n3si18569015plb.58.2019.04.04.16.24.04; Thu, 04 Apr 2019 16:24:20 -0700 (PDT) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b="lxW/7Lw7"; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730153AbfDDWYJ (ORCPT + 99 others); Thu, 4 Apr 2019 18:24:09 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:42808 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727441AbfDDWYI (ORCPT ); Thu, 4 Apr 2019 18:24:08 -0400 Received: by mail-pl1-f196.google.com with SMTP id cv12so1864844plb.9; Thu, 04 Apr 2019 15:24:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=AJP9ku+4VTvbuY88ZKcwjNfIqdPNT6HLBZK//U6fpF8=; b=lxW/7Lw7YusDY8xBDirOiwcpNRZoeFkPBfCFpNtMyVv79zOWl7+i1ouF9ZXAjMQC38 ENljdFzfOHZE9DuqoVf0b8tQUY3TLc96OEZTAWjdpShu5OrFbiHwQXf28etNzCpigXbc vTYQUCzgV+RZRElqDlBlsouhGO2ZWhnqP0GItHIeiO65pTah1X96p2ODdHeeYoQRlWPX EY/7Gj+/88b5F5NgFqc5YuCstkB0knogf9Iz12csVK5iu9vAZz7SqpXIuPJ1WGbvA0h5 LV6RmHeoSB2yKihb59DPJVXNX13H9LmfTvXpB7Jnk57WUuDih5TitdOmK2z3JsfIc371 6Q3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=AJP9ku+4VTvbuY88ZKcwjNfIqdPNT6HLBZK//U6fpF8=; b=lhru9hmBgJtDb9DSxikiyVEGmOD8/Uj3p/fWWbO0NhTq8LcVJjnKxmmmxkRTJJ2fro 2qIhHmfGDqd5IsmODrPxDIOcj9NDPCqZ7l1mm6yiH0MXN4OtWV+0JPyQdx7PWpaR906C 9hIUkknQUdCB2GZzScdlvTMGG2SEIhmPH46dXyXKtUG0JGNQ1DrT9ju0P43Yecrty6vr hzFZrBHL22Fe41NaU4lU+aDBet38QjxdIJpJGrFy2q+CLJecVT1GRgGnLcWhlcfQsoR2 lnWq4/D7xii4xjJB3XuniVXLyw5SBT0U/ty4hkfgU0kVmZBBPjJoPy6AKaBHUMbNTdFx hnjA== X-Gm-Message-State: APjAAAXOueClDFYJFqiaslTAvI1GpzQy9xvlreDzKdpfAMaePzb/nMNs sJg5mNqCs+bygPL2wlYWv8o= X-Received: by 2002:a17:902:e709:: with SMTP id co9mr9216291plb.86.1554416645926; Thu, 04 Apr 2019 15:24:05 -0700 (PDT) Received: from [192.168.11.2] (KD106167171201.ppp-bb.dion.ne.jp. [106.167.171.201]) by smtp.gmail.com with ESMTPSA id z20sm29364570pgf.70.2019.04.04.15.24.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Apr 2019 15:24:05 -0700 (PDT) Subject: Re: [PATCH tip/core/rcu 04/21] docs/memory-barriers.txt: Rewrite "KERNEL I/O BARRIER EFFECTS" section To: Will Deacon Cc: "Paul E. McKenney" , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, mingo@kernel.org, stern@rowland.harvard.edu, andrea.parri@amarulasolutions.com, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, Benjamin Herrenschmidt , Michael Ellerman , Arnd Bergmann , Palmer Dabbelt , Daniel Lustig , Linus Torvalds , "Maciej W. Rozycki" , Mikulas Patocka References: <20190326234114.GA23843@linux.ibm.com> <20190326234133.24962-4-paulmck@linux.ibm.com> <20190402130346.GA14559@fuggles.cambridge.arm.com> <7c0b1afc-9308-e060-d1cc-7389a2330e97@gmail.com> <20190404164022.GB28932@fuggles.cambridge.arm.com> From: Akira Yokosawa Message-ID: <1a30f6ec-cbf9-7bb0-3b08-ab785156a144@gmail.com> Date: Fri, 5 Apr 2019 07:23:59 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190404164022.GB28932@fuggles.cambridge.arm.com> 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 Thu, 4 Apr 2019 17:40:22 +0100, Will Deacon wrote: > Hi Akira, > > On Fri, Apr 05, 2019 at 12:58:36AM +0900, Akira Yokosawa wrote: >> On Tue, 2 Apr 2019 14:03:46 +0100, Will Deacon wrote: >>> On Tue, Mar 26, 2019 at 04:41:16PM -0700, Paul E. McKenney wrote: >>>> From: Will Deacon >>>> >>>> The "KERNEL I/O BARRIER EFFECTS" section of memory-barriers.txt is vague, >>>> x86-centric, out-of-date, incomplete and demonstrably incorrect in places. >>>> This is largely because I/O ordering is a horrible can of worms, but also >>>> because the document has stagnated as our understanding has evolved. >>>> >>>> Attempt to address some of that, by rewriting the section based on >>>> recent(-ish) discussions with Arnd, BenH and others. Maybe one day we'll >>>> find a way to formalise this stuff, but for now let's at least try to >>>> make the English easier to understand. >>>> >>>> Cc: "Paul E. McKenney" >>>> Cc: Benjamin Herrenschmidt >>>> Cc: Michael Ellerman >>>> Cc: Arnd Bergmann >>>> Cc: Peter Zijlstra >>>> Cc: Andrea Parri >>>> Cc: Palmer Dabbelt >>>> Cc: Daniel Lustig >>>> Cc: David Howells >>>> Cc: Alan Stern >>>> Cc: Linus Torvalds >>>> Cc: "Maciej W. Rozycki" >>>> Cc: Mikulas Patocka >>>> Signed-off-by: Will Deacon >>>> Signed-off-by: Paul E. McKenney >>>> --- >>>> Documentation/memory-barriers.txt | 115 ++++++++++++++++++------------ >>>> 1 file changed, 70 insertions(+), 45 deletions(-) >>> >>> If somebody could provide an Ack on this patch, I'd really appreciate it, >>> please. Whilst the portable ordering guarantees that I've documented are >>> fairly conservative, I do think that this change is a big improvement and >>> gives you what you need if you're writing a portable device driver for a new >>> piece of hardware. I'm tackling the removal of MMIOWB as a separate series. >>> >>> I think Paul now requires an Ack before he'll send a patch to mainline, >>> hence the grovelling. >> >> I'm afraid I'm not that qualified to provide an Ack to this patch, >> but please find a nit fix below. > > Oh well, thanks for having a look anyway! > >>>> + (*) insX(), outsX(): >>>> + >>>> + As above, the insX() and outX() accessors provide the same ordering >> outsX() > > Thanks; I'll fix that. > >>>> + guarantees as readsX() and writesX() respectively when accessing a mapping >>>> + with the default I/O attributes. >>>> >>>> (*) ioreadX(), iowriteX() >>>> >>>> These will perform appropriately for the type of access they're actually >>>> doing, be it inX()/outX() or readX()/writeX(). >>>> >>>> +All of these accessors assume that the underlying peripheral is little-endian, >>>> +and will therefore perform byte-swapping operations on big-endian architectures. >>>> + >>>> +Composing I/O ordering barriers with SMP ordering barriers and LOCK/UNLOCK >>>> +operations is a dangerous sport which may require the use of mmiowb(). See the >>>> +subsection "Acquires vs I/O accesses" for more information. >>>> >>>> ======================================== >>>> ASSUMED MINIMUM EXECUTION ORDERING MODEL >>>> -- >>>> 2.17.1 >>>> >> >> JFYI, there is another document Documentation/driver-api/device-io.rst, >> which is somewhat related to this update. It looks like this one also needs >> some update, as Jon commented in transforming to .rst format in commit >> 8a8a602fdb83 ("docs: Convert the deviceio template to RST"): >> >> Like the rest of our documentation, this one could use some work. There's >> no mention of ioremap() and friends, no mention of io_read*() and friends. >> But we have nice documentation for all those folks writing new drivers that >> do port I/O :). >> >> >> This commit was merged in v4.11 cycle. And there has been no update whatsoever >> since. mmiowb() is lightly mentioned therein. IMHO, just updating >> memory-barriers.txt would widen the gap of information. >> >> Thoughts? > > I have a subsequent patch which kills mmiowb() entirely: > > https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/commit/?h=for-next/mmiowb&id=3c1a2050c08fb8193777b60b49e60320254a156c > > and that one does hit device-io.rst. Ah, I see. So can somebody else have a look at this patch and provide an Ack, please? Thanks, Akira > > Will >