All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Niklas Schnelle <schnelle@linux.ibm.com>,
	Leon Romanovsky <leon@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	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: Wed, 24 Jan 2024 13:32:22 +0000	[thread overview]
Message-ID: <86bk9a97rt.wl-maz@kernel.org> (raw)
In-Reply-To: <20240124130638.GE1455070@nvidia.com>

On Wed, 24 Jan 2024 13:06:38 +0000,
Jason Gunthorpe <jgg@nvidia.com> wrote:
> 
> On Wed, Jan 24, 2024 at 08:26:28AM +0000, Marc Zyngier wrote:
> 
> > > Even if you refuse to take STP to mainline it *will* be running in VMs
> > > under ARM hypervisors.
> > 
> > A hypervisor can't do anything with it. If you cared to read the
> > architecture, you'd know by now. So your VM will be either dead, or
> > dog slow, depending on your hypervisor. In any case, I'm sure it will
> > reflect positively on your favourite software.
> 
> "Dog slow" is fine. Forcing IO emulation on paths that shouldn't have
> it is a VMM problem. KVM & qemu have some issues where this can happen
> infrequently for VFIO MMIO maps. It is just important that it be
> functionally correct if you get unlucky. The performance path is to
> not take a fault in the first place.
> 
> > > What exactly do you think should be done about that?
> > 
> > Well, you could use KVM_CAP_ARM_NISV_TO_USER in userspace and see
> > everything slow down. Your call.
> 
> The issue Mark raised here was that things like STP/etc cannot work in
> VMs, not that they are slow.
>
> The places we are talking about using the STP pattern are all high
> performance HW drivers, that do not have any existing SW emulation to
> worry about. ie the VMM will be using VFIO to back the MMIO the
> acessors target.
> 
> So, I'm fine if the answer is that VMM's using VFIO need to use
> KVM_CAP_ARM_NISV_TO_USER and do instruction parsing for emulated IO in
> userspace if they have a design where VFIO MMIO can infrequently
> generate faults. That is all VMM design stuff and has nothing to do
> with the kernel.

Which will work a treat with things like CCA, I'm sure.

> 
> My objection is this notion we should degrade a performance hot path
> in drivers to accomodate an ARM VMM issue that should be solved in the
> VMM.
> 
> > Or you can stop whining and try to get better performance out of what
> > we have today.
> 
> "better performance"!?!? You are telling me I have to destroy one of
> our important fast paths for HPC workloads to accommodate some
> theoretical ARM KVM problem?

What I'm saying is that there are way to make it better without
breaking your particular toy workload which, as important as it may be
to *you*, doesn't cover everybody's use case.

Mark did post such an example that has the potential of having that
improvement. I'd suggest that you give it a go.

But your attitude of "who cares if it breaks as long as it works for
me" is not something I can adhere to.

	M.

-- 
Without deviation from the norm, progress is not possible.

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Niklas Schnelle <schnelle@linux.ibm.com>,
	Leon Romanovsky <leon@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	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: Wed, 24 Jan 2024 13:32:22 +0000	[thread overview]
Message-ID: <86bk9a97rt.wl-maz@kernel.org> (raw)
In-Reply-To: <20240124130638.GE1455070@nvidia.com>

On Wed, 24 Jan 2024 13:06:38 +0000,
Jason Gunthorpe <jgg@nvidia.com> wrote:
> 
> On Wed, Jan 24, 2024 at 08:26:28AM +0000, Marc Zyngier wrote:
> 
> > > Even if you refuse to take STP to mainline it *will* be running in VMs
> > > under ARM hypervisors.
> > 
> > A hypervisor can't do anything with it. If you cared to read the
> > architecture, you'd know by now. So your VM will be either dead, or
> > dog slow, depending on your hypervisor. In any case, I'm sure it will
> > reflect positively on your favourite software.
> 
> "Dog slow" is fine. Forcing IO emulation on paths that shouldn't have
> it is a VMM problem. KVM & qemu have some issues where this can happen
> infrequently for VFIO MMIO maps. It is just important that it be
> functionally correct if you get unlucky. The performance path is to
> not take a fault in the first place.
> 
> > > What exactly do you think should be done about that?
> > 
> > Well, you could use KVM_CAP_ARM_NISV_TO_USER in userspace and see
> > everything slow down. Your call.
> 
> The issue Mark raised here was that things like STP/etc cannot work in
> VMs, not that they are slow.
>
> The places we are talking about using the STP pattern are all high
> performance HW drivers, that do not have any existing SW emulation to
> worry about. ie the VMM will be using VFIO to back the MMIO the
> acessors target.
> 
> So, I'm fine if the answer is that VMM's using VFIO need to use
> KVM_CAP_ARM_NISV_TO_USER and do instruction parsing for emulated IO in
> userspace if they have a design where VFIO MMIO can infrequently
> generate faults. That is all VMM design stuff and has nothing to do
> with the kernel.

Which will work a treat with things like CCA, I'm sure.

> 
> My objection is this notion we should degrade a performance hot path
> in drivers to accomodate an ARM VMM issue that should be solved in the
> VMM.
> 
> > Or you can stop whining and try to get better performance out of what
> > we have today.
> 
> "better performance"!?!? You are telling me I have to destroy one of
> our important fast paths for HPC workloads to accommodate some
> theoretical ARM KVM problem?

What I'm saying is that there are way to make it better without
breaking your particular toy workload which, as important as it may be
to *you*, doesn't cover everybody's use case.

Mark did post such an example that has the potential of having that
improvement. I'd suggest that you give it a go.

But your attitude of "who cares if it breaks as long as it works for
me" is not something I can adhere to.

	M.

-- 
Without deviation from the norm, progress is not possible.

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

  reply	other threads:[~2024-01-24 13:32 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 [this message]
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
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=86bk9a97rt.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=jgg@nvidia.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=mark.rutland@arm.com \
    --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.