netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: "Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	netdev@vger.kernel.org, "Björn Töpel" <bjorn@kernel.org>,
	"Magnus Karlsson" <magnus.karlsson@intel.com>,
	"Maciej Fijalkowski" <maciej.fijalkowski@intel.com>,
	"Jonathan Lemon" <jonathan.lemon@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Jesper Dangaard Brouer" <hawk@kernel.org>,
	"John Fastabend" <john.fastabend@gmail.com>,
	bpf@vger.kernel.org, virtualization@lists.linux-foundation.org,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Jens Axboe" <axboe@kernel.dk>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Jakub Kicinski" <kuba@kernel.org>
Subject: Re: [PATCH net-next] xsk: introduce xsk_dma_ops
Date: Tue, 25 Apr 2023 04:12:05 -0400	[thread overview]
Message-ID: <20230425035259-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <ZEFlzdiyu2IAyX7a@infradead.org>

On Thu, Apr 20, 2023 at 09:18:21AM -0700, Christoph Hellwig wrote:
> On Thu, Apr 20, 2023 at 05:11:48PM +0800, Xuan Zhuo wrote:
> > I know that the current design of DMA API only supports some physical hardware,
> > but can it be modified or expanded?
> 
> I think the important point is that for some cases there is no need
> to dma map at all, and upper layers should be fine by that by just
> doing the dma mapping in helpers called by the driver.
> 
> The virtio drivers then check if platform_access is set, then call the
> generic dma mapping helper, or if not just allocate memory using
> alloc_pages and also skip all the sync calls.

In theory, absolutely. In practice modern virtio devices are ok,
the reason we are stuck supporting old legacy ones is because legacy
devices are needed to run old guests. And then people turn
around and run a new guest on the same device,
for example because they switch back and forth e.g.
for data recovery? Or because whoever is selling the
host wants to opt for maximum compatibility.

Teaching all of linux to sometimes use dma and sometimes not
is a lot of work, and for limited benefit of these legacy systems.
We do it in a limited number of cases but generally
making DMA itself DTRT sounds more attractive.

So special DMA ops for these makes some sense: yes the
firmware described DMA is wrong on these boxes but
buggy firmware is not so unusual, is it?
Given virtio devices actually are on a virtual bus (the virtio bus)
sticking the fake DMA ops on this bus seems to make sense
as a way to express this quirk.

No?

-- 
MST


  reply	other threads:[~2023-04-25  8:13 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-17  3:27 [PATCH net-next] xsk: introduce xsk_dma_ops Xuan Zhuo
2023-04-17  4:24 ` Christoph Hellwig
2023-04-17  5:58   ` Xuan Zhuo
2023-04-17 18:56     ` Jakub Kicinski
2023-04-17 18:57       ` Jakub Kicinski
2023-04-18  1:07         ` Jason Wang
2023-04-18  1:19           ` Jakub Kicinski
2023-04-18  2:19             ` Xuan Zhuo
2023-04-18  2:54               ` Jakub Kicinski
2023-04-18  5:01                 ` Christoph Hellwig
2023-04-18  6:19                   ` Jakub Kicinski
2023-04-19  5:16                     ` Christoph Hellwig
2023-04-19 13:14                       ` Alexander Lobakin
2023-04-19 13:40                         ` Xuan Zhuo
2023-04-20  6:16                         ` Christoph Hellwig
2023-04-20 13:59                           ` Alexander Lobakin
2023-04-20 16:15                             ` Christoph Hellwig
2023-04-20 16:42                               ` Alexander Lobakin
2023-05-01  4:28                                 ` Christoph Hellwig
2023-04-19 16:45                       ` Jakub Kicinski
2023-04-20  6:19                         ` Christoph Hellwig
2023-04-20  9:11                           ` Xuan Zhuo
2023-04-20 16:18                             ` Christoph Hellwig
2023-04-25  8:12                               ` Michael S. Tsirkin [this message]
2023-05-01  4:16                                 ` Christoph Hellwig
2023-04-20 14:13                           ` Jakub Kicinski
2023-04-21  7:31                             ` Xuan Zhuo
2023-04-21 13:50                               ` Jakub Kicinski
2023-04-23  1:54                                 ` Xuan Zhuo
2023-04-24 15:28                                   ` Jakub Kicinski
2023-04-24 15:28                                 ` Alexander Lobakin
2023-04-25  2:11                                   ` Xuan Zhuo
2023-04-18  2:15         ` Xuan Zhuo
2023-04-17  6:38 ` kernel test robot
2023-04-17  6:43 ` Michael S. Tsirkin
2023-04-17  6:48   ` Xuan Zhuo
2023-04-17  6:48 ` kernel test robot
2023-04-19 13:22 ` Alexander Lobakin
2023-04-19 13:42   ` Xuan Zhuo
2023-04-20  6:12   ` Christoph Hellwig

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=20230425035259-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=ast@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=bjorn@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hawk@kernel.org \
    --cc=hch@infradead.org \
    --cc=jasowang@redhat.com \
    --cc=john.fastabend@gmail.com \
    --cc=jonathan.lemon@gmail.com \
    --cc=kraxel@redhat.com \
    --cc=kuba@kernel.org \
    --cc=linux@roeck-us.net \
    --cc=maciej.fijalkowski@intel.com \
    --cc=magnus.karlsson@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=torvalds@linux-foundation.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=xuanzhuo@linux.alibaba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).