All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Niklas Schnelle <schnelle@linux.ibm.com>
Cc: Leon Romanovsky <leon@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-rdma@vger.kernel.org, llvm@lists.linux.dev,
	Michael Guralnik <michaelgur@mellanox.com>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Will Deacon <will@kernel.org>
Subject: Re: [PATCH rdma-next 1/2] arm64/io: add memcpy_toio_64
Date: Fri, 24 Nov 2023 10:55:29 -0400	[thread overview]
Message-ID: <20231124145529.GG436702@nvidia.com> (raw)
In-Reply-To: <14103e31e0c47c0594e7479126ce7fe34f2de467.camel@linux.ibm.com>

On Fri, Nov 24, 2023 at 03:48:22PM +0100, Niklas Schnelle wrote:
> On Fri, 2023-11-24 at 10:20 -0400, Jason Gunthorpe wrote:
> > On Fri, Nov 24, 2023 at 03:10:29PM +0100, Niklas Schnelle wrote:
> >  
> > > What's the reasoning behind not using the existing memcpy_toio()
> > > here?
> > 
> > Going forward CPUs are implementing an instruction to do a 64 byte
> > aligned store, this is a wrapper for exactly that operation.
> > 
> > memcpy_toio() is much more general, it allows unaligned buffers and
> > non-multiples of 64. Adapting the general version to generate the
> > optimized version in the cases it can is complex and has a codegen
> > penalty..
> 
> I think you misunderstood me. I understand why you want a separate
> memcpy_toio_64(). I just wonder if its generic implementation shouldn't
> just be a define or inline wrapper for memcpy_toio(addr, buffer, 64).

Oh, yes, I totally did.

I'm worried that x86 will less reliably generate write combining with
it's memcpy_toio implemention. It codegens byte copies for that
function :(

> Also seeing the second patch of course that would no longer really test
> for write combining for us which we can also do but I think that's okay
> and you're probably going to use memcpy_toio_64() in more places and
> there we really want the PCI store block.

Right now we don't have in-kernel performance use cases for write
combining for mlx5.

Userspace uses the WC and we already have the special 390 instructions
for batching in rdma-core already, IIRC.

So it would be appropriate for s390 to use a consistent path.

Jason

WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@nvidia.com>
To: Niklas Schnelle <schnelle@linux.ibm.com>
Cc: Leon Romanovsky <leon@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-rdma@vger.kernel.org, llvm@lists.linux.dev,
	Michael Guralnik <michaelgur@mellanox.com>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Will Deacon <will@kernel.org>
Subject: Re: [PATCH rdma-next 1/2] arm64/io: add memcpy_toio_64
Date: Fri, 24 Nov 2023 10:55:29 -0400	[thread overview]
Message-ID: <20231124145529.GG436702@nvidia.com> (raw)
In-Reply-To: <14103e31e0c47c0594e7479126ce7fe34f2de467.camel@linux.ibm.com>

On Fri, Nov 24, 2023 at 03:48:22PM +0100, Niklas Schnelle wrote:
> On Fri, 2023-11-24 at 10:20 -0400, Jason Gunthorpe wrote:
> > On Fri, Nov 24, 2023 at 03:10:29PM +0100, Niklas Schnelle wrote:
> >  
> > > What's the reasoning behind not using the existing memcpy_toio()
> > > here?
> > 
> > Going forward CPUs are implementing an instruction to do a 64 byte
> > aligned store, this is a wrapper for exactly that operation.
> > 
> > memcpy_toio() is much more general, it allows unaligned buffers and
> > non-multiples of 64. Adapting the general version to generate the
> > optimized version in the cases it can is complex and has a codegen
> > penalty..
> 
> I think you misunderstood me. I understand why you want a separate
> memcpy_toio_64(). I just wonder if its generic implementation shouldn't
> just be a define or inline wrapper for memcpy_toio(addr, buffer, 64).

Oh, yes, I totally did.

I'm worried that x86 will less reliably generate write combining with
it's memcpy_toio implemention. It codegens byte copies for that
function :(

> Also seeing the second patch of course that would no longer really test
> for write combining for us which we can also do but I think that's okay
> and you're probably going to use memcpy_toio_64() in more places and
> there we really want the PCI store block.

Right now we don't have in-kernel performance use cases for write
combining for mlx5.

Userspace uses the WC and we already have the special 390 instructions
for batching in rdma-core already, IIRC.

So it would be appropriate for s390 to use a consistent path.

Jason

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2023-11-24 14:55 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-23 19:04 [PATCH rdma-next 0/2] Add and use memcpy_toio_64() Leon Romanovsky
2023-11-23 19:04 ` Leon Romanovsky
2023-11-23 19:04 ` [PATCH rdma-next 1/2] arm64/io: add memcpy_toio_64 Leon Romanovsky
2023-11-23 19:04   ` Leon Romanovsky
2023-11-24 10:16   ` Mark Rutland
2023-11-24 10:16     ` Mark Rutland
2023-11-24 12:23     ` Jason Gunthorpe
2023-11-24 12:23       ` Jason Gunthorpe
2023-11-27 12:42       ` Catalin Marinas
2023-11-27 12:42         ` Catalin Marinas
2023-11-27 13:45         ` Jason Gunthorpe
2023-11-27 13:45           ` Jason Gunthorpe
2023-12-04 17:31           ` Catalin Marinas
2023-12-04 17:31             ` Catalin Marinas
2023-12-04 18:23             ` Jason Gunthorpe
2023-12-04 18:23               ` Jason Gunthorpe
2023-12-05 17:21               ` Catalin Marinas
2023-12-05 17:21                 ` Catalin Marinas
2023-12-05 17:51                 ` Jason Gunthorpe
2023-12-05 17:51                   ` Jason Gunthorpe
2023-12-05 19:34                   ` Catalin Marinas
2023-12-05 19:34                     ` Catalin Marinas
2023-12-05 19:51                     ` Jason Gunthorpe
2023-12-05 19:51                       ` Jason Gunthorpe
2023-12-06 11:09                       ` Catalin Marinas
2023-12-06 11:09                         ` Catalin Marinas
2023-12-06 12:59                         ` Jason Gunthorpe
2023-12-06 12:59                           ` Jason Gunthorpe
2024-01-16 18:51                           ` Jason Gunthorpe
2024-01-16 18:51                             ` Jason Gunthorpe
2024-01-17 12:30                             ` Mark Rutland
2024-01-17 12:30                               ` Mark Rutland
2024-01-17 12:36                               ` Jason Gunthorpe
2024-01-17 12:36                                 ` Jason Gunthorpe
2024-01-17 12:41                                 ` Jason Gunthorpe
2024-01-17 12:41                                   ` Jason Gunthorpe
2024-01-17 13:29                                 ` Mark Rutland
2024-01-17 13:29                                   ` Mark Rutland
2024-01-23 20:38                                   ` Catalin Marinas
2024-01-23 20:38                                     ` Catalin Marinas
2024-01-24  1:27                                     ` Jason Gunthorpe
2024-01-24  1:27                                       ` Jason Gunthorpe
2024-01-24  8:26                                       ` Marc Zyngier
2024-01-24  8:26                                         ` Marc Zyngier
2024-01-24 13:06                                         ` Jason Gunthorpe
2024-01-24 13:06                                           ` Jason Gunthorpe
2024-01-24 13:32                                           ` Marc Zyngier
2024-01-24 13:32                                             ` Marc Zyngier
2024-01-24 15:52                                             ` Jason Gunthorpe
2024-01-24 15:52                                               ` Jason Gunthorpe
2024-01-24 17:54                                               ` Catalin Marinas
2024-01-24 17:54                                                 ` Catalin Marinas
2024-01-25  1:29                                                 ` Jason Gunthorpe
2024-01-25  1:29                                                   ` Jason Gunthorpe
2024-01-26 16:15                                                   ` Catalin Marinas
2024-01-26 16:15                                                     ` Catalin Marinas
2024-01-26 17:09                                                     ` Jason Gunthorpe
2024-01-26 17:09                                                       ` Jason Gunthorpe
2024-01-24 11:38                                     ` Mark Rutland
2024-01-24 11:38                                       ` Mark Rutland
2024-01-24 12:40                                       ` Catalin Marinas
2024-01-24 12:40                                         ` Catalin Marinas
2024-01-24 13:27                                         ` Jason Gunthorpe
2024-01-24 13:27                                           ` Jason Gunthorpe
2024-01-24 17:22                                           ` Catalin Marinas
2024-01-24 17:22                                             ` Catalin Marinas
2024-01-24 19:26                                             ` Jason Gunthorpe
2024-01-24 19:26                                               ` Jason Gunthorpe
2024-01-25 17:43                                               ` Jason Gunthorpe
2024-01-25 17:43                                                 ` Jason Gunthorpe
2024-01-26 14:56                                                 ` Catalin Marinas
2024-01-26 14:56                                                   ` Catalin Marinas
2024-01-26 15:24                                                   ` Jason Gunthorpe
2024-01-26 15:24                                                     ` Jason Gunthorpe
2024-01-17 14:07                               ` Mark Rutland
2024-01-17 14:07                                 ` Mark Rutland
2024-01-17 15:28                                 ` Jason Gunthorpe
2024-01-17 15:28                                   ` Jason Gunthorpe
2024-01-17 16:05                                   ` Will Deacon
2024-01-17 16:05                                     ` Will Deacon
2024-01-18 16:18                                     ` Jason Gunthorpe
2024-01-18 16:18                                       ` Jason Gunthorpe
2024-01-24 11:31                                       ` Mark Rutland
2024-01-24 11:31                                         ` Mark Rutland
2023-11-24 12:58   ` Robin Murphy
2023-11-24 12:58     ` Robin Murphy
2023-11-24 13:45     ` Jason Gunthorpe
2023-11-24 13:45       ` Jason Gunthorpe
2023-11-24 15:32       ` Robin Murphy
2023-11-24 15:32         ` Robin Murphy
2023-11-24 14:10   ` Niklas Schnelle
2023-11-24 14:10     ` Niklas Schnelle
2023-11-24 14:20     ` Jason Gunthorpe
2023-11-24 14:20       ` Jason Gunthorpe
2023-11-24 14:48       ` Niklas Schnelle
2023-11-24 14:48         ` Niklas Schnelle
2023-11-24 14:53         ` Niklas Schnelle
2023-11-24 14:53           ` Niklas Schnelle
2023-11-24 14:55         ` Jason Gunthorpe [this message]
2023-11-24 14:55           ` Jason Gunthorpe
2023-11-24 15:59           ` Niklas Schnelle
2023-11-24 15:59             ` Niklas Schnelle
2023-11-24 16:06             ` Jason Gunthorpe
2023-11-24 16:06               ` Jason Gunthorpe
2023-11-27 17:43               ` Niklas Schnelle
2023-11-27 17:43                 ` Niklas Schnelle
2023-11-27 17:51                 ` Jason Gunthorpe
2023-11-27 17:51                   ` Jason Gunthorpe
2023-11-28 16:28                   ` Niklas Schnelle
2023-11-28 16:28                     ` Niklas Schnelle
2024-01-16 17:33                     ` Jason Gunthorpe
2024-01-16 17:33                       ` Jason Gunthorpe
2024-01-17 13:20                       ` Niklas Schnelle
2024-01-17 13:20                         ` Niklas Schnelle
2024-01-17 13:26                         ` Jason Gunthorpe
2024-01-17 13:26                           ` Jason Gunthorpe
2024-01-17 17:55                           ` Jason Gunthorpe
2024-01-17 17:55                             ` Jason Gunthorpe
2024-01-18 13:46                             ` Niklas Schnelle
2024-01-18 13:46                               ` Niklas Schnelle
2024-01-18 14:00                               ` Jason Gunthorpe
2024-01-18 14:00                                 ` Jason Gunthorpe
2024-01-18 15:59                                 ` Niklas Schnelle
2024-01-18 15:59                                   ` Niklas Schnelle
2024-01-18 16:21                                   ` Jason Gunthorpe
2024-01-18 16:21                                     ` Jason Gunthorpe
2024-01-18 16:25                                     ` Niklas Schnelle
2024-01-18 16:25                                       ` Niklas Schnelle
2024-01-19 11:52                                       ` Niklas Schnelle
2024-01-19 11:52                                         ` Niklas Schnelle
2024-02-16 12:09                                   ` Niklas Schnelle
2024-02-16 12:09                                     ` Niklas Schnelle
2024-02-16 12:39                                     ` Jason Gunthorpe
2024-02-16 12:39                                       ` Jason Gunthorpe
2023-11-23 19:04 ` [PATCH rdma-next 2/2] IB/mlx5: Use memcpy_toio_64() for write combining stores Leon Romanovsky
2023-11-23 19:04   ` Leon Romanovsky

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=20231124145529.GG436702@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=leon@kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=michaelgur@mellanox.com \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=schnelle@linux.ibm.com \
    --cc=will@kernel.org \
    /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.