From: Alexander Duyck <alexander.h.duyck@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
Network Development <netdev@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
Peter Zijlstra <peterz@infradead.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Ingo Molnar <mingo@kernel.org>,
Michael Neuling <mikey@neuling.org>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
donald.c.skidmore@intel.com, matthew.vick@intel.com,
Geert Uytterhoeven <geert@linux-m68k.org>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
Francois Romieu <romieu@fr.zoreil.com>,
Paul McKenney <paulmck@linux.vnet.ibm.com>,
nic_swsd@realtek.com, Will Deacon <will.deacon@arm.com>,
Michael Ellerman <michael@ellerman.id.au>,
Tony Luck <tony.luck@intel.com>, Oleg Nesterov <oleg@redhat.com>
Subject: Re: [PATCH v4 0/4] Add lightweight memory barriers for coherent memory access
Date: Tue, 18 Nov 2014 14:47:15 -0800 [thread overview]
Message-ID: <546BCC73.3050903@redhat.com> (raw)
In-Reply-To: <CA+55aFw3ygP8UEF1vidWdjBUEkqXOELCPkpjLMD-X=vXXQEGOQ@mail.gmail.com>
On 11/18/2014 12:53 PM, Linus Torvalds wrote:
> On Tue, Nov 18, 2014 at 9:28 AM, Alexander Duyck
> <alexander.h.duyck@redhat.com> wrote:
>> These patches introduce two new primitives for synchronizing cache coherent
>> memory writes and reads. These two new primitives are:
>>
>> coherent_rmb()
>> coherent_wmb()
>
> So I'm still not convinced about the name. I don't hate it, but if you
> ever want to do "read_acquire", then that whole "coherent_" thing does
> make for a big mouthful. I don't see why "dma" isn't simpler and more
> to the point, and has the advantage of lining up (in documentation
> etc) with "smp".
The problem is DMA is a broad brush. There are multiple cases I can
think of where DMA does not represent coherent memory.
> Why would you ever use "coherent_xyz()" on something that isn't about
> dma? If it's cache-coherent memory without DMA, you'd use "smp_xyz()",
> so I really do prefer that whole "dma-vs-smp" issue, because it talks
> about what is actually the important issue. All sane memory is
> coherent, after all (and if it isn't, you have other issues than
> memory ordering).
>
> Linus
This barrier only applies to a subset of DMA memory types. So yes,
"coherent_xyz()" only applies to DMA, but not all DMA memory is coherent
as it could be a non-coherent or streaming DMA mapping.
One spot where the name makes sense is in the headers themselves. To
avoid duplication of definitions in several spots if CONFIG_SMP was
defined I simply defined smp_xyz() as coherent_xyz(). Defining it as
dma_xyz() might have made that more difficult to read in terms of what
was going on.
- Alex
WARNING: multiple messages have this Message-ID (diff)
From: Alexander Duyck <alexander.h.duyck@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
"Network Development" <netdev@vger.kernel.org>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Mathieu Desnoyers" <mathieu.desnoyers@polymtl.ca>,
"Peter Zijlstra" <peterz@infradead.org>,
"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
"Heiko Carstens" <heiko.carstens@de.ibm.com>,
"Ingo Molnar" <mingo@kernel.org>,
"Michael Neuling" <mikey@neuling.org>,
"Russell King - ARM Linux" <linux@arm.linux.org.uk>,
donald.c.skidmore@intel.com, matthew.vick@intel.com,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
"Jeff Kirsher" <jeffrey.t.kirsher@intel.com>,
"Francois Romieu" <romieu@fr.zoreil.com>,
"Paul McKenney" <paulmck@linux.vnet.ibm.com>,
nic_swsd@realtek.com, "Will Deacon" <will.deacon@arm.com>,
"Michael Ellerman" <michael@ellerman.id.au>,
"Tony Luck" <tony.luck@intel.com>,
"Oleg Nesterov" <oleg@redhat.com>,
"Martin Schwidefsky" <schwidefsky@de.ibm.com>,
"Frédéric Weisbecker" <fweisbec@gmail.com>,
"David Miller" <davem@davemloft.net>
Subject: Re: [PATCH v4 0/4] Add lightweight memory barriers for coherent memory access
Date: Tue, 18 Nov 2014 14:47:15 -0800 [thread overview]
Message-ID: <546BCC73.3050903@redhat.com> (raw)
Message-ID: <20141118224715.Df93JOS2LxGEXQ0bi7levxfhwMCMCC3u41Kp64hmRWg@z> (raw)
In-Reply-To: <CA+55aFw3ygP8UEF1vidWdjBUEkqXOELCPkpjLMD-X=vXXQEGOQ@mail.gmail.com>
On 11/18/2014 12:53 PM, Linus Torvalds wrote:
> On Tue, Nov 18, 2014 at 9:28 AM, Alexander Duyck
> <alexander.h.duyck@redhat.com> wrote:
>> These patches introduce two new primitives for synchronizing cache coherent
>> memory writes and reads. These two new primitives are:
>>
>> coherent_rmb()
>> coherent_wmb()
>
> So I'm still not convinced about the name. I don't hate it, but if you
> ever want to do "read_acquire", then that whole "coherent_" thing does
> make for a big mouthful. I don't see why "dma" isn't simpler and more
> to the point, and has the advantage of lining up (in documentation
> etc) with "smp".
The problem is DMA is a broad brush. There are multiple cases I can
think of where DMA does not represent coherent memory.
> Why would you ever use "coherent_xyz()" on something that isn't about
> dma? If it's cache-coherent memory without DMA, you'd use "smp_xyz()",
> so I really do prefer that whole "dma-vs-smp" issue, because it talks
> about what is actually the important issue. All sane memory is
> coherent, after all (and if it isn't, you have other issues than
> memory ordering).
>
> Linus
This barrier only applies to a subset of DMA memory types. So yes,
"coherent_xyz()" only applies to DMA, but not all DMA memory is coherent
as it could be a non-coherent or streaming DMA mapping.
One spot where the name makes sense is in the headers themselves. To
avoid duplication of definitions in several spots if CONFIG_SMP was
defined I simply defined smp_xyz() as coherent_xyz(). Defining it as
dma_xyz() might have made that more difficult to read in terms of what
was going on.
- Alex
WARNING: multiple messages have this Message-ID (diff)
From: Alexander Duyck <alexander.h.duyck@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
Network Development <netdev@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
Peter Zijlstra <peterz@infradead.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Ingo Molnar <mingo@kernel.org>,
Michael Neuling <mikey@neuling.org>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
donald.c.skidmore@intel.com, matthew.vick@intel.com,
Geert Uytterhoeven <geert@linux-m68k.org>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
Francois Romieu <romieu@fr.zoreil.com>,
Paul McKenney <paulmck@linux.vnet.ibm.com>,
nic_swsd@realtek.com, Will Deacon <will.deacon@arm.com>,
Michael Ellerman <michael@ellerman.id.au>,
Tony Luck <tony.luck@intel.com>, Oleg Nesterov <oleg@redhat.com>,
Martin Schwidefsky <
Subject: Re: [PATCH v4 0/4] Add lightweight memory barriers for coherent memory access
Date: Tue, 18 Nov 2014 14:47:15 -0800 [thread overview]
Message-ID: <546BCC73.3050903@redhat.com> (raw)
In-Reply-To: <CA+55aFw3ygP8UEF1vidWdjBUEkqXOELCPkpjLMD-X=vXXQEGOQ@mail.gmail.com>
On 11/18/2014 12:53 PM, Linus Torvalds wrote:
> On Tue, Nov 18, 2014 at 9:28 AM, Alexander Duyck
> <alexander.h.duyck@redhat.com> wrote:
>> These patches introduce two new primitives for synchronizing cache coherent
>> memory writes and reads. These two new primitives are:
>>
>> coherent_rmb()
>> coherent_wmb()
>
> So I'm still not convinced about the name. I don't hate it, but if you
> ever want to do "read_acquire", then that whole "coherent_" thing does
> make for a big mouthful. I don't see why "dma" isn't simpler and more
> to the point, and has the advantage of lining up (in documentation
> etc) with "smp".
The problem is DMA is a broad brush. There are multiple cases I can
think of where DMA does not represent coherent memory.
> Why would you ever use "coherent_xyz()" on something that isn't about
> dma? If it's cache-coherent memory without DMA, you'd use "smp_xyz()",
> so I really do prefer that whole "dma-vs-smp" issue, because it talks
> about what is actually the important issue. All sane memory is
> coherent, after all (and if it isn't, you have other issues than
> memory ordering).
>
> Linus
This barrier only applies to a subset of DMA memory types. So yes,
"coherent_xyz()" only applies to DMA, but not all DMA memory is coherent
as it could be a non-coherent or streaming DMA mapping.
One spot where the name makes sense is in the headers themselves. To
avoid duplication of definitions in several spots if CONFIG_SMP was
defined I simply defined smp_xyz() as coherent_xyz(). Defining it as
dma_xyz() might have made that more difficult to read in terms of what
was going on.
- Alex
next prev parent reply other threads:[~2014-11-18 22:48 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-18 17:28 [PATCH v4 0/4] Add lightweight memory barriers for coherent memory access Alexander Duyck
2014-11-18 17:29 ` [PATCH v4 1/4] arch: Cleanup read_barrier_depends() and comments Alexander Duyck
2014-11-18 17:29 ` [PATCH v4 2/4] arch: Add lightweight memory barriers coherent_rmb() and coherent_wmb() Alexander Duyck
2014-11-18 17:29 ` [PATCH v4 3/4] r8169: Use coherent_rmb() and coherent_wmb() for DescOwn checks Alexander Duyck
2014-11-18 17:29 ` [PATCH v4 4/4] fm10k/igb/ixgbe: Use coherent_rmb on Rx descriptor reads Alexander Duyck
2014-11-18 20:53 ` [PATCH v4 0/4] Add lightweight memory barriers for coherent memory access Linus Torvalds
2014-11-18 20:53 ` Linus Torvalds
2014-11-18 20:53 ` Linus Torvalds
2014-11-18 22:47 ` Alexander Duyck [this message]
2014-11-18 22:47 ` Alexander Duyck
2014-11-18 22:47 ` Alexander Duyck
2014-11-18 23:06 ` Linus Torvalds
2014-11-18 23:06 ` Linus Torvalds
2014-11-18 23:06 ` Linus Torvalds
2014-11-19 0:07 ` Alexander Duyck
2014-11-19 0:07 ` Alexander Duyck
2014-11-19 0:07 ` Alexander Duyck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=546BCC73.3050903@redhat.com \
--to=alexander.h.duyck@redhat.com \
--cc=benh@kernel.crashing.org \
--cc=donald.c.skidmore@intel.com \
--cc=geert@linux-m68k.org \
--cc=heiko.carstens@de.ibm.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=matthew.vick@intel.com \
--cc=michael@ellerman.id.au \
--cc=mikey@neuling.org \
--cc=mingo@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nic_swsd@realtek.com \
--cc=oleg@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=romieu@fr.zoreil.com \
--cc=tony.luck@intel.com \
--cc=torvalds@linux-foundation.org \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.