xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Akihiko Odaki <akihiko.odaki@daynix.com>
Cc: "Mauro Matteo Cascella" <mcascell@redhat.com>,
	"P J P" <pj.pandit@yahoo.co.in>,
	"Alexander Bulekov" <alxndr@bu.edu>,
	"Dmitry Fleytman" <dmitry.fleytman@gmail.com>,
	"Beniamino Galvani" <b.galvani@gmail.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Strahinja Jankovic" <strahinja.p.jankovic@gmail.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Stefan Weil" <sw@weilnetz.de>, "Cédric Le Goater" <clg@kaod.org>,
	"Andrew Jeffery" <andrew@aj.id.au>,
	"Joel Stanley" <joel@jms.id.au>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Helge Deller" <deller@gmx.de>,
	"Sriram Yagnaraman" <sriram.yagnaraman@est.tech>,
	"Thomas Huth" <huth@tuxfamily.org>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Subbaraya Sundeep" <sundeep.lkml@gmail.com>,
	"Jan Kiszka" <jan.kiszka@web.de>,
	"Tyrone Ting" <kfting@nuvoton.com>,
	"Hao Wu" <wuhaotsh@google.com>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Jiri Pirko" <jiri@resnulli.us>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Greg Kurz" <groug@kaod.org>,
	"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
	"Sven Schnelle" <svens@stackframe.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Paul Durrant" <paul@xen.org>, "Rob Herring" <robh@kernel.org>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	qemu-arm@nongnu.org, qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 0/2] net: Update MemReentrancyGuard for NIC
Date: Thu, 1 Jun 2023 09:16:03 +0200	[thread overview]
Message-ID: <72ccd4c2-7c60-e015-2322-721d09a8334b@linaro.org> (raw)
In-Reply-To: <20230601031859.7115-1-akihiko.odaki@daynix.com>

On 1/6/23 05:18, Akihiko Odaki wrote:
> Recently MemReentrancyGuard was added to DeviceState to record that the
> device is engaging in I/O. The network device backend needs to update it
> when delivering a packet to a device.
> 
> This implementation follows what bottom half does, but it does not add
> a tracepoint for the case that the network device backend started
> delivering a packet to a device which is already engaging in I/O. This
> is because such reentrancy frequently happens for
> qemu_flush_queued_packets() and is insignificant.
> 
> This series consists of two patches. The first patch makes a bulk change to
> add a new parameter to qemu_new_nic() and does not contain behavioral changes.
> The second patch actually implements MemReentrancyGuard update.

/me look at the 'net' API.

So the NetReceive* handlers from NetClientInfo process the HW NIC
data flow, independently from the CPUs.

IIUC MemReentrancyGuard is supposed to protect reentrancy abuse from
CPUs.

NetReceive* handlers aren't restricted to any particular API, they
just consume blob of data. Looking at e1000_receive_iov(), this data
is filled into memory using the pci_dma_rw() API. pci_dma_rw() gets
the AddressSpace to use calling pci_get_address_space(), which returns
PCIDevice::bus_master_as. Then we use the dma_memory_rw(), followed
by address_space_rw(). Beh, I fail to see why there is reentrancy
checks from this NIC DMA HW path.

Maybe the MemoryRegion API isn't the correct place to check for
reentrancy abuse and we should do that at the AddressSpace level,
keeping DMA ASes clear and only protecting CPU ASes?


  parent reply	other threads:[~2023-06-01  7:16 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-01  3:18 [PATCH v2 0/2] net: Update MemReentrancyGuard for NIC Akihiko Odaki
2023-06-01  3:18 ` [PATCH v2 1/2] net: Provide MemReentrancyGuard * to qemu_new_nic() Akihiko Odaki
2023-06-05  8:06   ` Alexander Bulekov
2023-06-05 10:50     ` Akihiko Odaki
2024-04-24 10:05   ` Philippe Mathieu-Daudé
2024-04-24 10:41     ` Prasad Pandit
2024-04-24 12:32       ` Thomas Huth
2024-04-26 12:37         ` Akihiko Odaki
2024-04-26 13:38           ` Philippe Mathieu-Daudé
2024-04-26 16:02             ` BALATON Zoltan
2023-06-01  3:18 ` [PATCH v2 2/2] net: Update MemReentrancyGuard for NIC Akihiko Odaki
2023-06-05  8:04   ` Alexander Bulekov
2023-06-01  7:16 ` Philippe Mathieu-Daudé [this message]
2023-06-01  7:41   ` [PATCH v2 0/2] " Akihiko Odaki
2023-06-01  8:56     ` Philippe Mathieu-Daudé
2023-09-21  7:16 ` Akihiko Odaki
2023-11-14  5:29   ` Jason Wang

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=72ccd4c2-7c60-e015-2322-721d09a8334b@linaro.org \
    --to=philmd@linaro.org \
    --cc=akihiko.odaki@daynix.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=alistair@alistair23.me \
    --cc=alxndr@bu.edu \
    --cc=andrew@aj.id.au \
    --cc=anthony.perard@citrix.com \
    --cc=b.galvani@gmail.com \
    --cc=clg@kaod.org \
    --cc=danielhb413@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=deller@gmx.de \
    --cc=dmitry.fleytman@gmail.com \
    --cc=edgar.iglesias@gmail.com \
    --cc=groug@kaod.org \
    --cc=harshpb@linux.ibm.com \
    --cc=huth@tuxfamily.org \
    --cc=jan.kiszka@web.de \
    --cc=jasowang@redhat.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=jiri@resnulli.us \
    --cc=joel@jms.id.au \
    --cc=kfting@nuvoton.com \
    --cc=kraxel@redhat.com \
    --cc=mcascell@redhat.com \
    --cc=mst@redhat.com \
    --cc=paul@xen.org \
    --cc=peter.maydell@linaro.org \
    --cc=pj.pandit@yahoo.co.in \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=robh@kernel.org \
    --cc=sriram.yagnaraman@est.tech \
    --cc=sstabellini@kernel.org \
    --cc=strahinja.p.jankovic@gmail.com \
    --cc=sundeep.lkml@gmail.com \
    --cc=svens@stackframe.org \
    --cc=sw@weilnetz.de \
    --cc=wuhaotsh@google.com \
    --cc=xen-devel@lists.xenproject.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 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).