On 7/8/25 4:17 AM, Markus Armbruster wrote:
Jonah Palmer writes:
On 7/4/25 11:00 AM, Markus Armbruster wrote:
Jonah Palmer writes:
[...]
So, total time increases: early pinning (before main loop) takes more
time than we save pinning (in the main loop). Correct?
Correct. We only
On 7/4/25 11:00 AM, Markus Armbruster wrote:
Jonah Palmer writes:
On 6/26/25 8:08 AM, Markus Armbruster wrote:
[...]
Apologies for the delay in getting back to you. I just wanted to be thorough
and answer everything as accurately and clearly as possible.
Before these patches
On 6/26/25 8:08 AM, Markus Armbruster wrote:
Jonah Palmer writes:
On 6/2/25 4:29 AM, Markus Armbruster wrote:
Butterfingers... let's try this again.
Markus Armbruster writes:
Si-Wei Liu writes:
On 5/26/2025 2:16 AM, Markus Armbruster wrote:
Si-Wei Liu writes:
On 5/15/2025
25 at 2:47 AM Jonah Palmer wrote:
Current memory operations like pinning may take a lot of time at the
destination. Currently they are done after the source of the migration is
stopped, and before the workload is resumed at the destination. This is a
period where neigher traffic can flow, nor t
From: Eugenio Pérez
It will be used directly by vhost_vdpa_init.
Tested-by: Lei Yang
Reviewed-by: Si-Wei Liu
Acked-by: Jason Wang
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 60 +-
1 file changed, 30
From: Eugenio Pérez
Check if the listener has been registered or not, so it needs to be
registered again at start.
Tested-by: Lei Yang
Reviewed-by: Si-Wei Liu
Acked-by: Jason Wang
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 7
ries [1]. As the title does not
reflect the changes anymore, please refer to the previous one to know the
series history.
This series is based on [2] and has already been merged.
[Jonah Palmer]
This series was rebased after [3] was pulled in, as [3] was a prerequisite
fix for this series.
Acked-by: Jason Wang
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 6b242ca56a..e9826ede2c 100644
--- a/hw/virtio/vhost-vdpa.c
y: Jason Wang
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 450f68f117..de834f2ebd 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio
also consolidating the two creation points: the first
data vq in case of SVQ active and CVQ start in case only CVQ uses it.
Tested-by: Lei Yang
Reviewed-by: Si-Wei Liu
Acked-by: Jason Wang
Suggested-by: Si-Wei Liu
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
include/hw/virtio
nt)
- 128G VM: 14.72s -> 5.83s (-8.89s, ~60% improvement)
Tested-by: Lei Yang
Reviewed-by: Si-Wei Liu
Acked-by: Jason Wang
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
v4:
Updated performance measurements in the commit log.
v3:
Move memory listener unr
tree is
recreated by vhost_vdpa_net_data_start_first or vhost_vdpa_net_cvq_start
if needed, so old behavior is kept.
Tested-by: Lei Yang
Reviewed-by: Si-Wei Liu
Acked-by: Jason Wang
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
net/vhost-vdpa.c | 4 +++-
1 file changed, 3
On 5/14/25 11:49 AM, Eugenio Perez Martin wrote:
On Wed, May 7, 2025 at 8:47 PM Jonah Palmer wrote:
Current memory operations like pinning may take a lot of time at the
destination. Currently they are done after the source of the migration is
stopped, and before the workload is resumed at the
On 5/15/25 1:36 PM, Si-Wei Liu wrote:
On 5/14/2025 10:42 PM, Michael S. Tsirkin wrote:
On Wed, May 07, 2025 at 02:46:47PM -0400, Jonah Palmer wrote:
From: Eugenio Pérez
Current memory operations like pinning may take a lot of time at the
destination. Currently they are done after the
tree is
recreated by vhost_vdpa_net_data_start_first or vhost_vdpa_net_cvq_start
if needed, so old behavior is kept.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
net/vhost-vdpa.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/vhost-vdpa.c b/net/vhost
secs to 2.0949.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
v3:
---
Move memory listener unregistration from vhost_vdpa_reset_status to
vhost_vdpa_reset_device. By unregistering the listener here, we can
guarantee that every reset leaves the device in an expected state.
Also remove
From: Eugenio Pérez
Check if the listener has been registered or not, so it needs to be
registered again at start.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 7 ++-
include/hw/virtio/vhost-vdpa.h | 6 ++
2 files changed, 12
From: Eugenio Pérez
It will be used directly by vhost_vdpa_init.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 60 +-
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/hw/virtio/vhost-vdpa.c b/hw
also consolidating the two creation points: the first
data vq in case of SVQ active and CVQ start in case only CVQ uses it.
Suggested-by: Si-Wei Liu
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
include/hw/virtio/vhost-vdpa.h | 16 ++-
net/vhost-vdpa.c
ation to this
vhost_vdpa_init function. When the listener is registered it is added
to an embedded linked list, so setting its members again will cause
memory corruption to the linked list node.
Do the right thing and only set it in the first vdpa device.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Pa
: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 6b242ca56a..e9826ede2c 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -634,6 +634,12 @@ static int
anymore, please refer to the previous one to know the
series history.
This series is based on [2], it must be applied after it.
[Jonah Palmer]
This series was rebased after [3] was pulled in, as [3] was a prerequisite
fix for this series.
v4:
---
* Add memory listener unregistration to
also consolidating the two creation points: the first
data vq in case of SVQ active and CVQ start in case only CVQ uses it.
Suggested-by: Si-Wei Liu
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
include/hw/virtio/vhost-vdpa.h | 16 ++-
net/vhost-vdpa.c
ation to this
vhost_vdpa_init function. When the listener is registered it is added
to an embedded linked list, so setting its members again will cause
memory corruption to the linked list node.
Do the right thing and only set it in the first vdpa device.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Pa
secs to 2.0949.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
--
v2:
Move the memory listener registration to vhost_vdpa_set_owner function.
In case of hotplug the vdpa device, the memory is already set up, and
leaving memory listener register call in the init function made maps
From: Eugenio Pérez
Check if the listener has been registered or not, so it needs to be
registered again at start.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 7 ++-
include/hw/virtio/vhost-vdpa.h | 6 ++
2 files changed, 12
: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 79224d18d8..939a5a28a1 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -636,6 +636,12 @@ static int
tree is
recreated by vhost_vdpa_net_data_start_first or vhost_vdpa_net_cvq_start
if needed, so old behavior is kept.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
net/vhost-vdpa.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/vhost-vdpa.c b/net/vhost
From: Eugenio Pérez
It will be used directly by vhost_vdpa_init.
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-vdpa.c | 60 +-
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/hw/virtio/vhost-vdpa.c b/hw
anymore, please refer to the previous one to know the
series history.
This series is based on [2], it must be applied after it.
[Jonah Palmer]
This series was rebased after [3] was pulled in, as [3] was a prerequisite
fix for this series.
v3:
---
* Rebase
v2:
---
* Move the memory listener
;IOVA
trees.
Signed-off-by: Jonah Palmer
Acked-by: Eugenio Pérez
Tested-by: Lei Yang
---
hw/virtio/vhost-iova-tree.c | 26 --
hw/virtio/vhost-iova-tree.h | 3 ++-
hw/virtio/vhost-vdpa.c | 29 +
net/vhost-vdpa.c| 10 +++
sed.
GPAs are unique in the guest's address space, ensuring unambiguous IOVA
translations. This avoids the issue where different GPAs map to the same
HVA, causing the original HVA->IOVA translation to potentially return an
IOVA associated with the wrong intended GPA.
Signed-off-by: Jonah Pa
gh RAMBlocks when we know the HVA is backed by
guest memory.
* Slight rewording of function names.
RFC v1:
---
* Alternative approach of [1].
* First attempt to address this issue found in [2].
[1]
https://lore.kernel.org/qemu-devel/20240410100345.389462-1-epere...@redhat.com
[2]
https:/
Minor update to some of the documentation / comments in
hw/virtio/vhost-iova-tree.c.
Signed-off-by: Jonah Palmer
Reviewed-by: Eugenio Pérez
Tested-by: Lei Yang
---
hw/virtio/vhost-iova-tree.c | 22 +++---
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/hw
he issue where different GPAs map to the same
HVA, causing the HVA->IOVA translation to potentially return an IOVA
associated with the wrong intended GPA.
For descriptors backed by host-only memory, the existing partial SVQ
IOVA->HVA tree is used.
Signed-off-by: Jonah Palmer
---
hw/virti
;IOVA
trees.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c | 26 --
hw/virtio/vhost-iova-tree.h | 3 ++-
hw/virtio/vhost-vdpa.c | 29 +
net/vhost-vdpa.c| 10 --
4 files changed, 51 insertions(+), 17 delet
, this method will be improved by utilizing the in_addr
and out_addr members of a VirtQueueElement to determine if an incoming
address for translation is backed by guest or host-only memory.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c| 67 ++
hw/vir
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c | 22 +++---
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/hw/virtio/vhost-iova-tree.c b/hw/virtio/vhost-iova-tree.c
index 9d2d6a7af2..fa4147b773 100644
--- a/hw/virtio/vhost-iova-tree.c
+++ b/hw/virtio
l.org/qemu-devel/20240410100345.389462-1-epere...@redhat.com
[2]
https://lore.kernel.org/qemu-devel/20240201180924.487579-1-epere...@redhat.com
Jonah Palmer (4):
vhost-iova-tree: Implement an IOVA-only tree
vhost-iova-tree: Implement GPA->IOVA & partial IOVA->HVA trees
svq:
On 1/21/25 12:25 PM, Eugenio Perez Martin wrote:
On Tue, Jan 21, 2025 at 3:53 PM Jonah Palmer wrote:
On 1/16/25 11:44 AM, Eugenio Perez Martin wrote:
On Fri, Jan 10, 2025 at 6:09 PM Jonah Palmer wrote:
Decouples the IOVA allocator from the full IOVA->HVA tree to support a
SVQ I
On 1/16/25 2:29 PM, Eugenio Perez Martin wrote:
On Fri, Jan 10, 2025 at 6:09 PM Jonah Palmer wrote:
Propagates the GPAs (in_xlat_addr/out_xlat_addr) of a VirtQueueElement
to vhost_svq_translate_addr() to translate to IOVAs via GPA->IOVA tree
when descriptors are backed by guest mem
On 1/16/25 2:00 PM, Eugenio Perez Martin wrote:
On Fri, Jan 10, 2025 at 6:09 PM Jonah Palmer wrote:
Implements the GPA->IOVA tree for handling mapping and unmapping for
guest memory. This, alongside the SVQ IOVA->HVA tree & IOVA-only tree
implemented in the previous patches, al
On 1/16/25 12:02 PM, Eugenio Perez Martin wrote:
On Fri, Jan 10, 2025 at 6:09 PM Jonah Palmer wrote:
Removes the range check portion in vhost_iova_tree_map_alloc.
The previous patch decoupled the IOVA allocator from adding mappings to
the IOVA->HVA tree (now a partial SVQ IOVA->HV
On 1/16/25 11:44 AM, Eugenio Perez Martin wrote:
On Fri, Jan 10, 2025 at 6:09 PM Jonah Palmer wrote:
Decouples the IOVA allocator from the full IOVA->HVA tree to support a
SVQ IOVA->HVA tree for host-only memory mappings.
The IOVA allocator still allocates an IOVA range but instea
to
multiple buffers, not breaking devices using aliased mapping, etc.).
Since the translation is only done once inside the DMA API alongside
virtqueue_pop(), the cost should be minimal.
Signed-off-by: Jonah Palmer
---
hw/display/virtio-gpu.c | 5 ++--
hw/hyperv/vmbus.c |
or the IOVA-only mappings, so this check is no longer
needed.
This check was moved to vhost_iova_tree_insert in the previous patch
since that function handles adding IOVA->HVA mappings to the SVQ
IOVA->HVA tree.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c | 3 +--
1 fil
The next patches will implement a method to determine if an incomming
address for translation is backed by guest or host-only memory.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c | 50 +
hw/virtio/vhost-iova-tree.h | 4 +++
hw/virtio/vhost-vdpa.c
ly return an IOVA associated with
the wrong intended GPA.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-shadow-virtqueue.c | 49 ++
1 file changed, 37 insertions(+), 12 deletions(-)
diff --git a/hw/virtio/vhost-shadow-virtqueue.c
b/hw/virtio/vhost-shadow-virtqueue.c
& host-only memory mappings.
A new API function vhost_iova_tree_insert() is also created for adding
IOVA->HVA mappings into the SVQ IOVA->HVA tree, since the allocator is
no longer doing that.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c | 35 ++
to address this issue found in [2].
[1]
https://lore.kernel.org/qemu-devel/20240410100345.389462-1-epere...@redhat.com
[2]
https://lore.kernel.org/qemu-devel/20240201180924.487579-1-epere...@redhat.com
Jonah Palmer (5):
vhost-vdpa: Decouple the IOVA allocator
vhost-iova-tree: Remove range chec
On 12/23/24 11:33 AM, Eugenio Perez Martin wrote:
On Fri, Dec 20, 2024 at 10:02 PM Michael Tokarev wrote:
12.09.2024 19:54, Eugenio Pérez wrote:
Commit a0d7215e33 ("vhost-vdpa: do not cleanup the vdpa/vhost-net
structures if peer nic is present") effectively delayed the backend
cleanup, al
Commit a0d7215e33 ("vhost-vdpa: do not cleanup the vdpa/vhost-net
structures if peer nic is present") effectively delayed the backend
cleanup, allowing the frontend or the guest to access it resources as
long as the frontend NIC is still visible to the guest.
However it does not clean up the resou
s finished.
Move the cleanup from qemu_cleanup to the NIC deletion and to
net_cleanup.
Fixes: a0d7215e33 ("vhost-vdpa: do not cleanup the vdpa/vhost-net structures if
peer nic is present")
Reported-by: Lei Yang
Signed-off-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
n
From: Eugenio Pérez
This change is used in later commits so we can avoid the removal of the
netclient if it is delayed.
No functional change intended.
Reviewed-by: Si-Wei Liu
Acked-by: Jason Wang
Signed-off-by: Eugenio Pérez
---
net/net.c | 13 -
1 file changed, 8 insertions(+),
On 12/22/24 4:13 AM, Michael Tokarev wrote:
16.12.2024 20:30, Jonah Palmer wrote:
...
Signed-off-by: Jonah Palmer
Should this be a Reviewed-by instead?
Thanks,
/mjt
Oof, yes, it should've been. My apologies, I was on vacation and only
saw this just now.
"VHOST_USER_PROTOCOL_F_DEVICE_STATE: Backend device state transfer
"
+ "supported"),
{ -1, "" }
};
Signed-off-by: Jonah Palmer
---
Jonah
On 10/8/24 2:51 AM, Eugenio Perez Martin wrote:
On Tue, Oct 8, 2024 at 2:14 AM Si-Wei Liu wrote:
On 10/7/2024 6:51 AM, Eugenio Perez Martin wrote:
On Fri, Oct 4, 2024 at 8:48 PM Jonah Palmer wrote:
On 10/4/24 11:17 AM, Eugenio Perez Martin wrote:
On Fri, Oct 4, 2024 at 2:45 PM
On 10/7/24 9:51 AM, Eugenio Perez Martin wrote:
On Fri, Oct 4, 2024 at 8:48 PM Jonah Palmer wrote:
On 10/4/24 11:17 AM, Eugenio Perez Martin wrote:
On Fri, Oct 4, 2024 at 2:45 PM Jonah Palmer wrote:
Implements the IOVA->GPA tree for handling mapping, unmapping, and
translations
On 10/4/24 11:17 AM, Eugenio Perez Martin wrote:
On Fri, Oct 4, 2024 at 2:45 PM Jonah Palmer wrote:
Implements the IOVA->GPA tree for handling mapping, unmapping, and
translations for guest memory regions.
When the guest has overlapping memory regions, an HVA to IOVA translation
C v1:
---
* Alternative approach of [1].
* First attempt to address this issue found in [2].
[1]
https://lore.kernel.org/qemu-devel/20240410100345.389462-1-epere...@redhat.com
[2]
https://lore.kernel.org/qemu-devel/20240201180924.487579-1-epere...@redhat.com
Jonah Palmer (2):
vhost
by
guest memory can lead to multiple different GPAs. In other words, we may
translate to an incorrect IOVA if we search the IOVA->HVA tree using an
HVA that's backed by guest memory.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-shadow-virtqueue.c | 61 --
1
tained (overlapping) in another HVA range
in the IOVA->HVA tree. By creating an IOVA->GPA tree, we can use GPAs to
translate and find the correct IOVA for guest memory regions.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c | 78 +++--
hw/virtio/vhost
On 8/29/24 12:55 PM, Eugenio Perez Martin wrote:
On Wed, Aug 21, 2024 at 2:56 PM Jonah Palmer wrote:
Implements a GPA->IOVA and IOVA->SVQ HVA tree for handling mapping,
unmapping, and translations for guest and host-only memory,
respectively.
By splitting up a full IOVA->
On 8/30/24 4:05 AM, Eugenio Perez Martin wrote:
On Fri, Aug 30, 2024 at 6:20 AM Si-Wei Liu wrote:
On 8/29/2024 9:53 AM, Eugenio Perez Martin wrote:
On Wed, Aug 21, 2024 at 2:56 PM Jonah Palmer wrote:
Decouples the IOVA allocator from the IOVA->HVA tree and instead adds
the alloca
nction vhost_iova_tree_insert() is also created to add a
IOVA->HVA mapping into the IOVA->HVA tree.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c | 38 -
hw/virtio/vhost-iova-tree.h | 1 +
hw/virtio/vhost-vdpa
eding to iterate over some (if not
all) RAMBlock structures and then searching either the GPA->IOVA tree or
the IOVA->SVQ HVA tree. Optimizations to improve performance in this
area should be revisited at some point.
Signed-off-by: Jonah Palmer
---
hw/virtio/vhost-iova-tree.c| 53 +
2].
[1]
https://lore.kernel.org/qemu-devel/20240410100345.389462-1-epere...@redhat.com
[2]
https://lore.kernel.org/qemu-devel/20240201180924.487579-1-epere...@redhat.com
Jonah Palmer (2):
vhost-vdpa: Decouple the IOVA allocator
vhost-vdpa: Implement GPA->IOVA & IOVA->S
On 7/31/24 5:56 AM, Eugenio Perez Martin wrote:
On Tue, Jul 30, 2024 at 2:32 PM Jonah Palmer wrote:
On 7/30/24 7:00 AM, Eugenio Perez Martin wrote:
On Tue, Jul 30, 2024 at 10:48 AM Jason Wang wrote:
On Mon, Jul 29, 2024 at 6:05 PM Eugenio Perez Martin
wrote:
On Wed, Jul 24, 2024
On 7/30/24 7:00 AM, Eugenio Perez Martin wrote:
On Tue, Jul 30, 2024 at 10:48 AM Jason Wang wrote:
On Mon, Jul 29, 2024 at 6:05 PM Eugenio Perez Martin
wrote:
On Wed, Jul 24, 2024 at 7:00 PM Jonah Palmer wrote:
On 5/13/24 11:56 PM, Jason Wang wrote:
On Mon, May 13, 2024 at 5:58 PM
On 7/29/24 2:20 PM, Eugenio Perez Martin wrote:
On Mon, Jul 29, 2024 at 7:50 PM Jonah Palmer wrote:
On 7/29/24 6:04 AM, Eugenio Perez Martin wrote:
On Wed, Jul 24, 2024 at 7:00 PM Jonah Palmer wrote:
On 5/13/24 11:56 PM, Jason Wang wrote:
On Mon, May 13, 2024 at 5:58 PM Eugenio
On 7/29/24 6:04 AM, Eugenio Perez Martin wrote:
On Wed, Jul 24, 2024 at 7:00 PM Jonah Palmer wrote:
On 5/13/24 11:56 PM, Jason Wang wrote:
On Mon, May 13, 2024 at 5:58 PM Eugenio Perez Martin
wrote:
On Mon, May 13, 2024 at 10:28 AM Jason Wang wrote:
On Mon, May 13, 2024 at 2:28 PM
On 5/13/24 11:56 PM, Jason Wang wrote:
On Mon, May 13, 2024 at 5:58 PM Eugenio Perez Martin
wrote:
On Mon, May 13, 2024 at 10:28 AM Jason Wang wrote:
On Mon, May 13, 2024 at 2:28 PM Eugenio Perez Martin
wrote:
On Sat, May 11, 2024 at 6:07 AM Jason Wang wrote:
On Fri, May 10, 2024 a
to the
descriptor ring last so the guest doesn't see any invalid descriptors.
If any elements were written, the used_idx is updated.
Signed-off-by: Jonah Palmer
---
Several fixes here for the split VQ case:
- Ensure all previous write operations to buffers are completed before
updating the us
eviewed-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
include/hw/virtio/virtio.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 7512afbc84..fdc827f82e 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -
Extend the virtio device property definitions to include the
VIRTIO_F_IN_ORDER feature.
The default state of this feature is disabled, allowing it to be
explicitly enabled where it's supported.
Acked-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
include/hw/virtio/virtio.h | 4 +++-
1
ively.
This will allow us to keep track of the current order, what elements
have been written, as well as an element's essential data after being
processed.
Reviewed-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
last_avail_idx can grow well beyond vring.num, so for this reason we
need t
not support it.
Acked-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/block/vhost-user-blk.c| 1 +
hw/net/vhost_net.c | 2 ++
hw/scsi/vhost-scsi.c | 1 +
hw/scsi/vhost-user-scsi.c| 1 +
hw/virtio/vhost-user-fs.c| 1 +
hw/virtio/vhost-user-vsock.c | 1 +
net
virtqueue_ordered_fill.
Add test results to CV.
v2: Make 'in_order_filled' more descriptive.
Change 'j' to more descriptive var name in virtqueue_split_pop.
Use more definitive search conditional in virtqueue_ordered_fill.
Avoid code duplicat
elems array.
By marking the element as filled, it will indicate that this element has
been processed and is ready to be flushed, so long as the element is
in-order.
Reviewed-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/virtio.c | 44 +++-
1
On 6/20/24 2:40 PM, Eugenio Perez Martin wrote:
On Thu, Jun 20, 2024 at 7:56 PM Jonah Palmer wrote:
The goal of these patches is to add support to a variety of virtio and
vhost devices for the VIRTIO_F_IN_ORDER transport feature. This feature
indicates that all buffers are used by the
elems array.
By marking the element as filled, it will indicate that this element has
been processed and is ready to be flushed, so long as the element is
in-order.
Reviewed-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/virtio.c | 44 +++-
1
not support it.
Acked-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/block/vhost-user-blk.c| 1 +
hw/net/vhost_net.c | 2 ++
hw/scsi/vhost-scsi.c | 1 +
hw/scsi/vhost-user-scsi.c| 1 +
hw/virtio/vhost-user-fs.c| 1 +
hw/virtio/vhost-user-vsock.c | 1 +
net
Extend the virtio device property definitions to include the
VIRTIO_F_IN_ORDER feature.
The default state of this feature is disabled, allowing it to be
explicitly enabled where it's supported.
Acked-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
include/hw/virtio/virtio.h | 4 +++-
1
27; to more descriptive var name in virtqueue_split_pop.
Use more definitive search conditional in virtqueue_ordered_fill.
Avoid code duplication in virtqueue_ordered_flush.
v1: Move series from RFC to PATCH for submission.
Jonah Palmer (6):
virtio: Add bool to VirtQueueElement
virtio: virtqueue_pop -
ively.
This will allow us to keep track of the current order, what elements
have been written, as well as an element's essential data after being
processed.
Reviewed-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/virtio/virtio.c | 13 +
1 file changed, 13 insertions(+)
diff
to the
descriptor ring last so the guest doesn't see any invalid descriptors.
If any elements were written, the used_idx is updated.
Signed-off-by: Jonah Palmer
---
hw/virtio/virtio.c | 66 +-
1 file changed, 65 insertions(+), 1 deletion(-)
diff --git
eviewed-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
include/hw/virtio/virtio.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 7d5ffdc145..88e70c1ae1 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -
On 5/23/24 6:47 AM, Eugenio Perez Martin wrote:
On Thu, May 23, 2024 at 12:30 PM Jonah Palmer wrote:
On 5/22/24 12:07 PM, Eugenio Perez Martin wrote:
On Mon, May 20, 2024 at 3:01 PM Jonah Palmer wrote:
Add VIRTIO_F_IN_ORDER feature support for the virtqueue_fill operation.
The goal
On 5/22/24 12:07 PM, Eugenio Perez Martin wrote:
On Mon, May 20, 2024 at 3:01 PM Jonah Palmer wrote:
Add VIRTIO_F_IN_ORDER feature support for the virtqueue_fill operation.
The goal of the virtqueue_ordered_fill operation when the
VIRTIO_F_IN_ORDER feature has been negotiated is to search
On 5/22/24 11:45 AM, Eugenio Perez Martin wrote:
On Mon, May 20, 2024 at 3:01 PM Jonah Palmer wrote:
Add VIRTIO_F_IN_ORDER feature support in virtqueue_split_pop and
virtqueue_packed_pop.
VirtQueueElements popped from the available/descritpor ring are added to
the VirtQueue's used_
On 5/22/24 11:44 AM, Eugenio Perez Martin wrote:
On Mon, May 20, 2024 at 3:01 PM Jonah Palmer wrote:
Add the boolean 'in_order_filled' member to the VirtQueueElement structure.
The use of this boolean will signify whether the element has been processed
and is ready to be flushe
not support it.
Tested-by: Lei Yang
Acked-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
hw/block/vhost-user-blk.c| 1 +
hw/net/vhost_net.c | 2 ++
hw/scsi/vhost-scsi.c | 1 +
hw/scsi/vhost-user-scsi.c| 1 +
hw/virtio/vhost-user-fs.c| 1 +
hw/virtio/vhost-user
ively.
This will allow us to keep track of the current order, what elements
have been written, as well as an element's essential data after being
processed.
Tested-by: Lei Yang
Signed-off-by: Jonah Palmer
---
hw/virtio/virtio.c | 17 -
1 file changed, 16 insertions(+), 1 deletio
to the
descriptor ring last so the guest doesn't see any invalid descriptors.
If any elements were written, the used_idx is updated.
Signed-off-by: Jonah Palmer
---
hw/virtio/virtio.c | 66 +-
1 file changed, 65 insertions(+), 1 deletion(-)
diff --git
rtqueue_ordered_flush).
---
v2: Make 'in_order_filled' more descriptive.
Change 'j' to more descriptive var name in virtqueue_split_pop.
Use more definitive search conditional in virtqueue_ordered_fill.
Avoid code duplication in virtqueue_ordered_flush.
v1: Move s
Extend the virtio device property definitions to include the
VIRTIO_F_IN_ORDER feature.
The default state of this feature is disabled, allowing it to be
explicitly enabled where it's supported.
Tested-by: Lei Yang
Acked-by: Eugenio Pérez
Signed-off-by: Jonah Palmer
---
include/hw/v
elems array.
By marking the element as filled, it will indicate that this element has
been processed and is ready to be flushed, so long as the element is
in-order.
Signed-off-by: Jonah Palmer
---
hw/virtio/virtio.c | 36 +++-
1 file changed, 35 insertions(+), 1 del
ed-by: Lei Yang
Signed-off-by: Jonah Palmer
---
include/hw/virtio/virtio.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 7d5ffdc145..88e70c1ae1 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -
On 5/10/24 3:48 AM, Eugenio Perez Martin wrote:
On Mon, May 6, 2024 at 5:06 PM Jonah Palmer wrote:
Add VIRTIO_F_IN_ORDER feature support for virtqueue_flush operations.
The goal of the virtqueue_flush operation when the VIRTIO_F_IN_ORDER
feature has been negotiated is to write elements to
On 5/9/24 10:08 AM, Eugenio Perez Martin wrote:
On Mon, May 6, 2024 at 5:05 PM Jonah Palmer wrote:
Add VIRTIO_F_IN_ORDER feature support for virtqueue_fill operations.
The goal of the virtqueue_fill operation when the VIRTIO_F_IN_ORDER
feature has been negotiated is to search for this now
1 - 100 of 348 matches
Mail list logo