Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 38 ++
1 file changed, 38 insertions(+)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index d005a56..8da2815 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -48,12 +48,17 @@
#define MAX_
From: Wei Xu
This patch is to support WHQL test for Windows guest, while this feature also
benifits other guest works as a kernel 'gro' like feature with userspace
implementation.
Feature information:
http://msdn.microsoft.com/en-us/library/windows/hardware/jj853324
Both IPv4 and IPv6 are sup
Signed-off-by: Wei Xu
---
include/hw/virtio/virtio.h | 32
1 file changed, 32 insertions(+)
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 205fadf..1383220 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -12
1. Callback for IPv6
2. Filter & Sanity Check.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 104 +++-
1 file changed, 102 insertions(+), 2 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 55e8e99..362f304 100644
--- a/h
Looking up chain by protocol and invoke coalescing
callback, cache the packet if can't handle it.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 171 +++-
1 file changed, 170 insertions(+), 1 deletion(-)
diff --git a/hw/net/virtio-net.c b/hw/net/
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c| 22 ++
include/hw/virtio/virtio-net.h | 1 +
2 files changed, 23 insertions(+)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index a877614..4e9458e 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 125 +++-
1 file changed, 124 insertions(+), 1 deletion(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 7a6cd4c..d005a56 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 19 +++
1 file changed, 19 insertions(+)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 8da2815..1ca3dd5 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -1630,6 +1630,18 @@ static int virtio_net_load_devi
From: Wei Xu
All the 'SYN' packets will be bypassed, and flag with 'FIN/RST' set
will signal all the cached packets in the same connection to be purged,
this is to avoid out of data on the line.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 66
1. IP options & IP fragment should be bypassed.
2. Sanity size check to prevent buffer overflow attack.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 44
1 file changed, 44 insertions(+)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c| 49 +++---
include/hw/virtio/virtio.h | 35 +
2 files changed, 81 insertions(+), 3 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
ind
From: Wei Xu
Segment is the coalesced packets in a connection.
Status is to indicate the status while do coalescing, such as if a
packet is bypassed or coalesced, etc.
Chain is used to save the segments of different protocols in a VirtIONet
instance.
A timer is used in a chain to help purging
From: Wei Xu
Since this feature also needs to support IPv6, and there are
some protocol specific differences difference for IPv4/6 in the header,
so try to make the interface to be general.
IPv4/6 should set up both the new and old IP/TCP header before invoking
TCP coalescing, and should also te
From: Wei Xu
The chain list is initialized when the device is getting realized,
and the entry of the chain will be inserted dynamically according
to protocol type of the network traffic.
All the buffered packets and chain will be destroyed when the
device is going to be unrealized.
Signed-off-b
From: Wei Xu
Patch v2 add detailed commit log.
This patch is to support WHQL test for Windows guest, while this feature also
benifits other guest works as a kernel 'gro' like feature with userspace
implementation.
Feature information:
http://msdn.microsoft.com/en-us/library/windows/hardware/j
From: Wei Xu
Upon a packet is arriving, a corresponding chain will be selected or created,
or be bypassed if it's not an IPv4 packets.
The callback in the chain will be invoked to call the real coalescing.
Since the coalescing is based on the TCP connection, so the packets will be
cached if the
From: Wei Xu
If a field in the IPv4 header is modified, then the checksum
have to be recalculated before sending it out.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 19 +++
1 file changed, 19 insertions(+)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 93df0d
From: Wei Xu
The timer will only be triggered if the packets pool is not empty,
and it'll drain off all the cached packets, this is to reduce the
delay to upper layer protocol stack.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 38 ++
1 file changed, 38 i
From: Wei Xu
A few more stuffs should be included to support this
1. Corresponding chain lookup
2. Coalescing callback for the protocol chain
3. Filter & Sanity Check.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 104 +++-
1 file changed, 102
From: Wei Xu
Normally it includes 2 typical way to handle a TCP control flag, bypass
and finalize, bypass means should be sent out directly, and finalize
means the packets should also be bypassed, and this should be done
after searching for the same connection packets in the pool and sending
all
From: Wei Xu
More general exception cases check
1. Incorrect version in IP header
2. IP options & IP fragment
3. Not a TCP packets
4. Sanity size check to prevent buffer overflow attack.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 44
1 file cha
From: Wei Xu
Add statistics to log what happened during the process.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c| 49 +++---
include/hw/virtio/virtio.h | 33 +++
2 files changed, 79 insertions(+), 3 deletions(-)
dif
From: Wei Xu
All the data packets in a tcp connection will be cached to a big buffer
in every receive interval, and will be sent out via a timer, the
'virtio_net_rsc_timeout' controls the interval, the value will influent the
performance and response of tcp connection extremely, 5(50us) is a
From: Wei Xu
Fixed issues based on rfc patch v2:
1. Removed big param list, replace it with 'NetRscUnit'
2. Different virtio header size
3. Modify callback function to direct call.
4. Needn't check the failure of g_malloc()
5. Other code format adjustment, macro naming, etc
This patch is to su
From: Wei Xu
Most things like ipv4 except there is a significant difference between ipv4
and ipv6, the fragment lenght in ipv4 header includes itself, while it's not
included for ipv6, thus means ipv6 can carry a real '65535' unit.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c| 146 +++
From: Wei Xu
Changes in V4:
- Add new host feature bit
- Replace using fixed header lenght with dynamic header lenght in VirtIONet
- Change ip/ip6 header union in NetRscUnit to void* pointer
- Add macro prefix, adjust code indent, etc.
Changes in V3:
- Removed big param list, replace it with 'N
From: Wei Xu
A new feature bit 'VIRTIO_NET_F_GUEST_RSC' is introduced to support WHQL
Receive-Segment-Offload test, this feature will coalesce tcp packets in
IPv4/6 for userspace virtio-net driver.
This feature can be enabled either by 'ACK' the feature when loading
the driver in the guest, or b
From: Wei Xu
All the data packets in a tcp connection will be cached to a big buffer
in every receive interval, and will be sent out via a timer, the
'virtio_net_rsc_timeout' controls the interval, the value will influent the
performance and response of tcp connection extremely, 5(50us) is a
From: Wei Xu
Most things like ipv4 except there is a significant difference between ipv4
and ipv6, the fragment lenght in ipv4 header includes itself, while it's not
included for ipv6, thus means ipv6 can carry a real '65535' payload.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c | 147 +++
From: Wei Xu
Changes in V6:
- Sync upstream code
- Split new fields in 'virtio_net_hdr' to a seperate patch
- Remove feature bit code, replace it with a command line parameter 'guest_rsc'
which is turned off by default.
Changes in V5:
- Passed all IPv4/6 test cases
- Add new fields in 'virtio_ne
From: Wei Xu
All the data packets in a tcp connection will be cached to a big buffer
in every receive interval, and will be sent out via a timer, the
'virtio_net_rsc_timeout' controls the interval, the value will influent the
performance and response of tcp connection extremely, 5(50us) is a
From: Wei Xu
Most stuffs are like ipv4 2 differences between ipv4 and ipv6.
1. Fragment length in ipv4 header includes itself, while it's not
included for ipv6, thus means ipv6 can carry a real '65535' payload.
2. IPv6 header does not need calculate header checksum.
Signed-off-by: Wei Xu
---
From: Wei Xu
Field 'coalesced' is to indicate how many packets are coalesced and field
'dup_ack' is how many duplicate acks are merged, guest driver can use these
information to notify what's the exact scene of original traffic over the
networks.
Signed-off-by: Wei Xu
---
hw/net/virtio-net.c
From: Wei Xu
Most stuffs are like ipv4 2 differences between ipv4 and ipv6.
1. Fragment length in ipv4 header includes itself, while it's not
included for ipv6, thus means ipv6 can carry a real '65535' payload.
2. IPv6 header does not need calculate header checksum.
Signed-off-
From: Wei Xu
Changes in V5:
- Passed all IPv4/6 test cases
- Add new fields in 'virtio_net_hdr'
- Set 'gso_type' & 'coalesced packets' in new field.
- Bypass all 'tcp option' packet
- Bypass all 'pure ack' packet
- Bypass all 'duplicate ack' packet
- Change 'guest_rsc' feature bit to 'false' by d
From: Wei Xu
All the data packets in a tcp connection will be cached to a big buffer
in every receive interval, and will be sent out via a timer, the
'virtio_net_rsc_timeout' controls the interval, the value will influent the
performance and response of tcp connection extremely, 5(50us) is a
From: Wei Xu
This patch is to support WHQL test for Windows guest, while this
feature also benifits other guest works as a kernel 'gro' like
feature with userspace implementation.
Feature information:
http://msdn.microsoft.com/en-us/library/windows/hardware/jj853324
v6->v7
- Change the drain
From: Wei Xu
Most process flows work like ipv4, 2 differences between ipv4 and ipv6.
1. Fragment length in ipv4 header includes itself, while it's not
included for ipv6, thus means ipv6 can carry a real '65535' payload.
2. IPv6 header does not need calculate header checksum.
Signed-off-by: Wei
From: Wei Xu
All the data packets in a tcp connection are cached
to a single buffer in every receive interval, and will
be sent out via a timer, the 'virtio_net_rsc_timeout'
controls the interval, this value may impact the
performance and response time of tcp connection,
5(50us) is an experie
From: Wei Xu
code base:
https://github.com/Whishay/qemu.git
Todo:
- migration has not been support yet
v2->v3
- addressed performance issue
- fixed feedback from v2
v1->v2
- sync to tiwei's v5
- reuse memory cache function with 1.0
- dropped detach patch and notification helper(04 & 05 in v1)
From: Wei Xu
Basic initialization and helpers for packed ring.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 57 +-
1 file changed, 56 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 9185efb..86f88da
From: Wei Xu
Expand 1.0 by adding offset calculation accordingly.
Signed-off-by: Wei Xu
---
hw/virtio/vhost.c | 16
hw/virtio/virtio.c | 35 +++
include/hw/virtio/virtio.h | 4 ++--
3 files changed, 33 insertions(+), 22 deletio
From: Wei Xu
sync from 1.1 spec
Signed-off-by: Wei Xu
---
include/standard-headers/linux/virtio_config.h | 15 +
include/standard-headers/linux/virtio_ring.h | 43 ++
2 files changed, 58 insertions(+)
diff --git a/include/standard-headers/linux/virtio_config.
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 258 ++---
1 file changed, 244 insertions(+), 14 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 13c6c98..d12a7e3 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/
From: Wei Xu
Redefine packed ring structure according to qemu nomenclature,
also supported data(event index, wrap counter, etc) are introduced.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 26 --
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/hw/virtio
From: Wei Xu
only userspace virtio net backend has been supported by
the CLI so far.
(cherry picked from commit 0b3ec96f4a9402cca467c40353066e57608ac6b6)
Signed-off-by: Wei Xu
(cherry picked from commit a1a3b85f00299ccc6f4bc819abe470da88059fb7)
Signed-off-by: Wei Xu
---
include/hw/virtio/virt
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index bfb3364..9185efb 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1243,6 +1243,9 @@ void virtio_reset(void *opaque)
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 126 +++--
1 file changed, 123 insertions(+), 3 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index d12a7e3..1d25776 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/v
From: Wei Xu
Same thought as 1.0 except a bit confused when trying to reuse
'shadow_avail_idx', so the interrelated new event_idx and the wrap
counter for notifications has been introduced in previous patch.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 176 +++
From: Wei Xu
(cherry picked from commit 305a2c4640c15c5717245067ab937fd10f478ee6)
Signed-off-by: Wei Xu
(cherry picked from commit 46476dae6f44c6fef8802a4a0ac7d0d79fe399e3)
Signed-off-by: Wei Xu
---
hw/virtio/vhost.c | 3 +++
hw/virtio/virtio.c | 4
include/hw/virtio/virt
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/net/vhost_net.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index e037db6..fb4b18f 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -78,6 +78,7 @@ static const int user_feature_bits[] = {
V
From: Wei Xu
With the support of marking a descriptor used/unused in 'flags'
field for 1.1, the current way of filling a chained descriptors
does not work since driver side may get the wrong 'num_buffer'
information in case of the head descriptor has been filled in
while the subsequent ones are s
From: Wei Xu
>From 1.1 spec.
Signed-off-by: Wei Xu
---
include/standard-headers/linux/virtio_config.h | 15 +
include/standard-headers/linux/virtio_ring.h | 43 ++
2 files changed, 58 insertions(+)
diff --git a/include/standard-headers/linux/virtio_config.h
From: Wei Xu
Redefine packed ring structure according to Qemu nomenclature,
field data(wrap counter, etc) are introduced also.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 16
1 file changed, 16 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 4136d2
From: Wei Xu
Code base:
https://github.com/Whishay/qemu.git
rfc v3 -> v1
- migration support for both userspace and vhost-net, need tweak vhost
ioctl() to make it work(the code is pasted in the commit message of
vhost migration patch #13).
Note:
the high 32-bit guest feature bit is s
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 180 +
1 file changed, 167 insertions(+), 13 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 9d485e4..13265e3 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/
From: Peter Maydell
Signed-off-by: Peter Maydell
---
VERSION | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/VERSION b/VERSION
index 3af1c22..bbcce69 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.0.91
+3.0.92
--
1.8.3.1
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index a41c2d3..99565c6 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -156,10 +156,8 @@ static void vir
From: Wei Xu
Expand 1.0 to 1.1 by adding offset calculation accordingly.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 22 ++
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index a8e737c..a41c2d3 100644
--- a/hw/virti
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 99565c6..74d9710 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1239,6 +1239,9 @@ void virtio_reset(void *opaque)
From: Wei Xu
With the support of marking a descriptor used/unused in 'flags'
field for 1.1, the current way of filling a chained descriptors
does not work since driver side may get the wrong 'num_buffer'
information in case of the head descriptor has been filled in
while the subsequent ones are s
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 290 +
1 file changed, 273 insertions(+), 17 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 13265e3..99a6601 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 121 +++--
1 file changed, 118 insertions(+), 3 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 99a6601..240c4e3 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/v
From: Wei Xu
ring check and other basical helpers for packed ring.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 59 +-
1 file changed, 58 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 74d9710..9d48
From: Wei Xu
tweaked vhost-net code to test migration.
@@ -1414,64 +1430,20 @@ long vhost_vring_ioctl(struct vhost_dev
r = -EFAULT;
break;
}
+ vq->last_avail_idx = s.num & 0x7FFF;
+ /* Forget the cached index value. */
+ v
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 18 ++
1 file changed, 18 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 240c4e3..64d5c04 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -2558,6 +2558,12 @@ int virtio_save(VirtIO
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/net/vhost_net.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index e037db6..fb4b18f 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -78,6 +78,7 @@ static const int user_feature_bits[] = {
V
From: Wei Xu
Signed-off-by: Wei Xu
---
include/hw/virtio/virtio.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index a6fdf3f..36fc4ef 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -26
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/net/vhost_net.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index fb4b18f..f593086 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -53,6 +53,7 @@ static const int kernel_feature_bits[] = {
From: Wei Xu
>From 1.1 spec.
Signed-off-by: Wei Xu
---
include/standard-headers/linux/virtio_config.h | 15 +
include/standard-headers/linux/virtio_ring.h | 43 ++
2 files changed, 58 insertions(+)
diff --git a/include/standard-headers/linux/virtio_config.h
From: Wei Xu
Redefine packed ring structure according to Qemu nomenclature,
field data(wrap counter, etc) are introduced also.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 16
1 file changed, 16 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 22bd1a
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 112845c..454da3d 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -156,10 +156,8 @@ static void vir
From: Wei Xu
Expand 1.0 to 1.1 by adding offset calculation accordingly.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 22 ++
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 827e745..112845c 100644
--- a/hw/virti
From: Wei Xu
v1->v2:
- fix patchew complaint
- only set/get last_avail_idx/wrap_counter for vhost migration(Maxime)
- replace 'out_num' and 'in_num' with 'elem_entries'in packed_pop()(Maxime)
- set last used idx/wrap_counter to last avail ones when flushing(Maxime)
- replace '*host_has_featu
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 454da3d..833289e 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1239,6 +1239,9 @@ void virtio_reset(void *opaque)
From: Wei Xu
With the support of marking a descriptor used/unused in 'flags'
field for 1.1, the current way of filling a chained descriptors
does not work since driver side may get the wrong 'num_buffer'
information in case of the head descriptor has been filled in
while the subsequent ones are s
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 295 ++---
1 file changed, 278 insertions(+), 17 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index cb599e9..5562ecd 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/
From: Wei Xu
ring check and other basical helpers for packed ring.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 59 +-
1 file changed, 58 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 833289e..e728
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 180 +
1 file changed, 167 insertions(+), 13 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index e728201..cb599e9 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/net/vhost_net.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index e037db6..fb4b18f 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -78,6 +78,7 @@ static const int user_feature_bits[] = {
V
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 27 ---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 722a4fd..0cb912e 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -2991,17 +2991,34
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 121 +++--
1 file changed, 118 insertions(+), 3 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 5562ecd..0bcf8a5 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/v
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 39 +++
1 file changed, 39 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 0bcf8a5..722a4fd 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -2346,6 +2346,13 @@ s
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/net/vhost_net.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index fb4b18f..f593086 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -53,6 +53,7 @@ static const int kernel_feature_bits[] = {
From: Wei Xu
Signed-off-by: Wei Xu
---
include/hw/virtio/virtio.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 9c1fa07..cb286bb 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -26
From: Wei Xu
Todo:
- address Rx slow performance
- event index interrupt suppression test
v1->v2
- sync to tiwei's v5
- reuse memory cache function with 1.0
- dropped detach patch and notification helper(04 & 05 in v1)
- guest virtio-net driver unload/reload support
- event suppression support(n
From: Wei Xu
New feature bit and members for packed ring.
Signed-off-by: Wei Xu
---
hw/net/vhost_net.c | 2 ++
hw/virtio/virtio.c | 27 --
include/hw/virtio/virtio.h | 4 +++-
include/standard
From: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 145 -
1 file changed, 144 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index cdbb5af..0160d03 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/vi
From: Wei Xu
Mostly reuse memory cache with 1.0 except for the offset calculation.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 29 -
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index e192a9a..f6c0689 1006
From: Wei Xu
Signed-off-by: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 115 +++--
include/standard-headers/linux/virtio_config.h | 13 +++
2 files changed, 119 insertions(+), 9 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio
From: Wei Xu
Signed-off-by: Wei Xu
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 109 ++---
1 file changed, 96 insertions(+), 13 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 0160d03..6f2da83 100644
--- a/hw/virtio/vir
From: Wei Xu
helper for ring empty check and descriptor read.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 62 +++---
1 file changed, 59 insertions(+), 3 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index f6c0689..bd669a2
From: Wei Xu
mostly as same as 1.0 except traversing all desc to feed
headcount, need a refactor.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 148 +++--
1 file changed, 145 insertions(+), 3 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/vi
From: Wei Xu
last_avail, avail_wrap_count, used_idx and used_wrap_count are
needed to support vhost-net backend, all these are either 16 or
bool variables, since state.num is 64bit wide, so here it is
possible to put them to the 'num' without introducing a new case
while handling ioctl.
Unload/R
From: Wei Xu
Currently address space of a vfio device is selected by directly
looking up pci device IOMMU address space during realizing, this
usually works for most none separate address space targeted cases
since they are using the system address space, i.e. a q35 machine
without virtual IOMMU.
From: Wei Xu
Recently I have been testing passing through 2 ixgbe(82599ES) nics which
belong to the same iommu group to a guest with virtual iommu(vIOMMU) on
my desktop, while vfio failed to realize the second device and prompted
error message as 'group xxx used in multiple address spaces'.
It t
From: Wei Xu
Invoke looking up correct address space before getting an
IOMMU group.
Signed-off-by: Wei Xu
---
hw/vfio/pci.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 31e1edf..856cefd 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/p
From: Wei Xu
This has been done when introducing 'vfio_lookup_as()'
patch as a side work to reuse the loop.
Signed-off-by: Wei Xu
---
hw/vfio/pci.c | 9 -
1 file changed, 9 deletions(-)
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 856cefd..d78f756 100644
--- a/hw/vfio/pci.c
+++ b/
From: Wei Xu
This is a prototype for virtio-net 1.1 support in userspace backend,
only minimum part are included in this RFC(roughly synced to v8 as
Jason and Tiwei's RFC).
Test has been done together with Tiwei's RFC guest virtio-net driver
patch, ping and a quick iperf test successfully.
Issu
From: Wei Xu
Only minimum definitions from the spec are included
for prototype.
Signed-off-by: Wei Xu
---
hw/virtio/virtio.c | 47 +++---
include/hw/virtio/virtio.h | 12 ++-
include/standard-headers/linux/virtio_config.h
1 - 100 of 131 matches
Mail list logo