On Fri, Oct 7, 2022 at 4:35 AM Alex Bennée wrote:
>
>
> Bin Meng writes:
>
> > In preparation to adding virtio-9p support on Windows, this series
> > enables running qtest on Windows, so that we can run the virtio-9p
> > tests on Windows to make sure it does not break accidently.
>
> I'm happy to
On 10/7/22 00:17, Stefan Hajnoczi wrote:
> On Tue, Oct 04, 2022 at 08:23:15AM +0900, Damien Le Moal wrote:
>> On 2022/10/04 2:47, Stefan Hajnoczi wrote:
>>> On Thu, Sep 29, 2022 at 04:36:27PM +0800, Sam Li wrote:
Add a new zoned_host_device BlockDriver. The zoned_host_device option
accept
On Fri, Jul 22, 2022 at 08:35:54AM +0200, Cédric Le Goater wrote:
>
> Cédric Le Goater (8):
> m25p80: Add basic support for the SFDP command
> m25p80: Add the n25q256a SFDP table
> m25p80: Add the mx25l25635e SFPD table
> m25p80: Add the mx25l25635f SFPD table
> m25p80: Add the mx66l1g45
Generated from hardware using the following command and then padding
with 0xff to fill out a power-of-2:
hexdump -v -e '8/1 "0x%02x, " "\n"' sfdp`
Signed-off-by: Patrick Williams
---
hw/block/m25p80.c | 3 ++-
hw/block/m25p80_sfdp.c | 36
hw/block/m
Register guest RAM using BlockRAMRegistrar and set the
BDRV_REQ_REGISTERED_BUF flag so block drivers can optimize memory
accesses in I/O requests.
This is for vdpa-blk, vhost-user-blk, and other I/O interfaces that rely
on DMA mapping/unmapping.
Signed-off-by: Stefan Hajnoczi
---
include/hw/vir
Add a function to get the file descriptor for a RAMBlock. Device
emulation code typically uses the MemoryRegion APIs but vhost-style code
may use RAMBlock directly for sharing guest memory with another process.
This new API will be used by the libblkio block driver so it can share
guest memory via
The blkio block driver will need to look up the file descriptor for a
given pointer. This is possible in softmmu builds where the RAMBlock API
is available for querying guest RAM.
Add stubs so tools like qemu-img that link the block layer still build
successfully. In this case there is no guest RA
Make list traversal work when a callback removes a notifier
mid-traversal. This is a cleanup to prevent bugs in the future.
Signed-off-by: Stefan Hajnoczi
---
hw/core/numa.c | 9 ++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/hw/core/numa.c b/hw/core/numa.c
index 31e6fe1
Registering an I/O buffer is only a performance optimization hint but it
is still necessary to return errors when it fails.
Later patches will need to detect errors when registering buffers but an
immediate advantage is that error_report() calls are no longer needed in
block driver .bdrv_register_
Use the enum type so GDB displays the enum members instead of printing a
numeric constant.
Signed-off-by: Stefan Hajnoczi
---
include/block/block_int-common.h | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/block/block_int-common.h b/include/block/block_int-co
The only implementor of bdrv_register_buf() is block/nvme.c, where the
size is not needed when unregistering a buffer. This is because
util/vfio-helpers.c can look up mappings by address.
Future block drivers that implement bdrv_register_buf() may not be able
to do their job given only the buffer
Avoid bounce buffers when QEMUIOVector elements are within previously
registered bdrv_register_buf() buffers.
The idea is that emulated storage controllers will register guest RAM
using bdrv_register_buf() and set the BDRV_REQ_REGISTERED_BUF on I/O
requests. Therefore no blkio_map_mem_region() cal
Emulated devices and other BlockBackend users wishing to take advantage
of blk_register_buf() all have the same repetitive job: register
RAMBlocks with the BlockBackend using RAMBlockNotifier.
Add a BlockRAMRegistrar API to do this. A later commit will use this
from hw/block/virtio-blk.c.
Signed-
When a RAMBlockNotifier is added, ->ram_block_added() is called with all
existing RAMBlocks. There is no equivalent ->ram_block_removed() call
when a RAMBlockNotifier is removed.
The util/vfio-helpers.c code (the sole user of RAMBlockNotifier) is fine
with this asymmetry because it does not rely o
Block drivers may optimize I/O requests accessing buffers previously
registered with bdrv_register_buf(). Checking whether all elements of a
request's QEMUIOVector are within previously registered buffers is
expensive, so we need a hint from the user to avoid costly checks.
Add a BDRV_REQ_REGISTER
libblkio (https://gitlab.com/libblkio/libblkio/) is a library for
high-performance disk I/O. It currently supports io_uring,
virtio-blk-vhost-user, and virtio-blk-vhost-vdpa with additional drivers
under development.
One of the reasons for developing libblkio is that other applications
besides QEM
When a coroutine wakes up it may determine that it must re-queue.
Normally coroutines are pushed onto the back of the CoQueue, but for
fairness it may be necessary to push it onto the front of the CoQueue.
Add a flag to specify that the coroutine should be pushed onto the front
of the CoQueue. A l
v6:
- Add untested nvme-io_uring driver. Please test in your nested NVMe
environment, Alberto. [Alberto]
- Map blkio mem regions only when necessary to reduce conflicts with RAM
discard [Alberto]
- Reduce duplication by having a single blkio_virtio_blk_common_open() function
[Alberto]
- Avoid du
Bin Meng writes:
> In preparation to adding virtio-9p support on Windows, this series
> enables running qtest on Windows, so that we can run the virtio-9p
> tests on Windows to make sure it does not break accidently.
I'm happy to take this whole series through my testing/next however I
don't h
On Thu, Oct 06, 2022 at 05:41:39PM +0100, Alberto Faria wrote:
> On Tue, Sep 27, 2022 at 8:34 PM Stefan Hajnoczi wrote:
> > +static int blkio_virtio_blk_vhost_user_open(BlockDriverState *bs,
> > +QDict *options, int flags, Error **errp)
> > +{
> > +const char *path = qdict_get_try_str(
On Thu, Oct 6, 2022 at 7:46 PM Stefan Hajnoczi wrote:
> > Regardless, I'd say we want to map memory regions even if we don't
> > strictly need to (in cases where we can do so at no additional cost),
> > since that may improve performance for some drivers.
>
> The downside is that when s->mem_regio
On Thu, Oct 06, 2022 at 07:09:36PM +0100, Alberto Faria wrote:
> On Thu, Oct 6, 2022 at 7:00 PM Stefan Hajnoczi wrote:
> > s->needs_mem_regions determines if we'll use libblkio memory regions at
> > all. When it's false we skip blkio_map_mem_region() and therefore it's
> > safe to set s->mem_regio
On Thu, Oct 6, 2022 at 7:00 PM Stefan Hajnoczi wrote:
> s->needs_mem_regions determines if we'll use libblkio memory regions at
> all. When it's false we skip blkio_map_mem_region() and therefore it's
> safe to set s->mem_regions_pinned to false.
blkio_register_buf() calls blkio_map_mem_region().
On Wed, Sep 28, 2022 at 09:12:36PM +0100, Alberto Campinho Faria wrote:
> On Wed, Sep 28, 2022 at 8:21 PM Stefan Hajnoczi wrote:
> > On Tue, Sep 27, 2022 at 03:34:30PM -0400, Stefan Hajnoczi wrote:
> > > +ret = blkio_get_bool(s->blkio,
> > > + "mem-regions-pinned",
> >
Am 26.09.2022 um 11:31 hat Emanuele Giuseppe Esposito geschrieben:
> In this series, we want to remove the AioContext lock and instead
> use the already existent job_mutex to protect the job structures
> and list. This is part of the work to get rid of AioContext lock
> usage in favour of smaller g
On Thu, Oct 06, 2022 at 02:18:35PM +0200, Stefano Garzarella wrote:
> Hi Stefan,
> I tested this series with the vDPA block simulator in Linux v6.0.
> It worked well, but I had a segfault when blkio_map_mem_region() fails.
>
> In my case, it failed because I forgot to increase the `memlock` limit
On Tue, Sep 27, 2022 at 8:34 PM Stefan Hajnoczi wrote:
> +static int blkio_virtio_blk_vhost_user_open(BlockDriverState *bs,
> +QDict *options, int flags, Error **errp)
> +{
> +const char *path = qdict_get_try_str(options, "path");
> +BDRVBlkioState *s = bs->opaque;
> +int ret;
Am 26.09.2022 um 11:32 hat Emanuele Giuseppe Esposito geschrieben:
> iostatus is the only field (together with .job) that needs
> protection using the job mutex.
>
> It is set in the main loop (GLOBAL_STATE functions) but read
> in I/O code (block_job_error_action).
>
> In order to protect it, ch
On Mittwoch, 5. Oktober 2022 11:38:39 CEST Christian Schoenebeck wrote:
> On Dienstag, 4. Oktober 2022 14:54:16 CEST Christian Schoenebeck wrote:
> > On Dienstag, 4. Oktober 2022 12:41:21 CEST Linus Heckemann wrote:
> > > The previous implementation would iterate over the fid table for
> > > lookup
From: Bin Meng
There is a difference in the mkdir() call for win32 and non-win32
platforms, and currently is handled in the codes with #ifdefs.
glib provides a portable g_mkdir() API and we can use it to unify
the codes without #ifdefs.
Signed-off-by: Bin Meng
Reviewed-by: Marc-André Lureau
-
In preparation to adding virtio-9p support on Windows, this series
enables running qtest on Windows, so that we can run the virtio-9p
tests on Windows to make sure it does not break accidently.
Changes in v5:
- Rebase on qemu/master
- Drop patches that are already merged
- Use g_autoptr(GError)
-
On Thu, Oct 6, 2022 at 11:11 PM Bin Meng wrote:
>
> In preparation to adding virtio-9p support on Windows, this series
> enables running qtest on Windows, so that we can run the virtio-9p
> tests on Windows to make sure it does not break accidently.
>
> Changes in v5:
> - Rebase on qemu/master
> -
On Tue, Oct 04, 2022 at 08:23:15AM +0900, Damien Le Moal wrote:
> On 2022/10/04 2:47, Stefan Hajnoczi wrote:
> > On Thu, Sep 29, 2022 at 04:36:27PM +0800, Sam Li wrote:
> >> Add a new zoned_host_device BlockDriver. The zoned_host_device option
> >> accepts only zoned host block devices. By adding z
On 6/10/22 14:26, Kevin Wolf wrote:
Signed-off-by: Kevin Wolf
---
block/quorum.c | 2 --
1 file changed, 2 deletions(-)
Reviewed-by: Philippe Mathieu-Daudé
From: Bin Meng
There is a difference in the mkdir() call for win32 and non-win32
platforms, and currently is handled in the codes with #ifdefs.
glib provides a portable g_mkdir() API and we can use it to unify
the codes without #ifdefs.
Signed-off-by: Bin Meng
Reviewed-by: Marc-André Lureau
-
In preparation to adding virtio-9p support on Windows, this series
enables running qtest on Windows, so that we can run the virtio-9p
tests on Windows to make sure it does not break accidently.
Changes in v5:
- Rebase on qemu/master
- Drop patches that are already merged
- Use g_autoptr(GError)
-
On Thu, Sep 29, 2022 at 05:48:21PM +0800, Sam Li wrote:
> This patch extends virtio-blk emulation to handle zoned device commands
> by calling the new block layer APIs to perform zoned device I/O on
> behalf of the guest. It supports Report Zone, four zone oparations (open,
> close, finish, reset),
On Thu, 29 Sept 2022 at 11:14, Sam Li wrote:
>
> Use scripts/update-linux-headers.sh to update virtio-blk headers
> from Dmitry's "virtio-blk:add support for zoned block devices"
> linux patch. There is a link for more information:
> https://github.com/dmitry-fomichev/virtblk-zbd
>
> Signed-off-by
On Thu, 6 Oct 2022 at 14:13, Kevin Wolf wrote:
>
> Signed-off-by: Kevin Wolf
> ---
> block/quorum.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/block/quorum.c b/block/quorum.c
> index 970f63d9f9..f9e6539ceb 100644
> --- a/block/quorum.c
> +++ b/block/quorum.c
> @@ -232,8 +232,6 @@
On Thu, Sep 29, 2022 at 05:48:20PM +0800, Sam Li wrote:
> Use scripts/update-linux-headers.sh to update virtio-blk headers
> from Dmitry's "virtio-blk:add support for zoned block devices"
> linux patch. There is a link for more information:
> https://github.com/dmitry-fomichev/virtblk-zbd
>
> Sign
Signed-off-by: Kevin Wolf
---
block/quorum.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/block/quorum.c b/block/quorum.c
index 970f63d9f9..f9e6539ceb 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -232,8 +232,6 @@ static bool quorum_has_too_much_io_failed(QuorumAIOCB *acb)
retu
Hi Stefan,
I tested this series with the vDPA block simulator in Linux v6.0.
It worked well, but I had a segfault when blkio_map_mem_region() fails.
In my case, it failed because I forgot to increase the `memlock` limit
with `ulimit -l unlimited` since the simulator still requires locking
all th
Am 22.09.2022 um 10:48 hat Paolo Bonzini geschrieben:
> As discussed at KVM Forum 2022, I am reposting this series to
> add more coroutine_fn annotations. Fixing the annotations
> enables static analysis of which functions are coroutine-only
> and which are mixed (coroutine/non-coroutine).
>
> A
Am 05.10.2022 um 23:11 hat Paolo Bonzini geschrieben:
> Il mer 5 ott 2022, 06:32 Kevin Wolf ha scritto:
>
> > Hm... blkdebug_debug_event() is called from bdrv_debug_event(), which is
> > not coroutine_fn. And I think that it's not coroutine_fn is correct:
> > For example, with 'qemu-img snapshot
44 matches
Mail list logo