Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: 52a7ff526964e7810ec1ccc71efbdd60952dd20b
https://github.com/qemu/qemu/commit/52a7ff526964e7810ec1ccc71efbdd60952dd20b
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M net/tap-bsd.c
M net/tap-linux.c
M net/tap-solaris.c
M net/tap-stub.c
M net/tap.c
M net/tap_int.h
Log Message:
-----------
tap: Remove tap_probe_vnet_hdr_len()
It was necessary since an Linux older than 2.6.35 may implement the
virtio-net header but may not allow to change its length. Remove it
since such an old Linux is no longer supported.
Signed-off-by: Akihiko Odaki <[email protected]>
Acked-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 4b52d63249a508dd927222ffac1a868d38681fc5
https://github.com/qemu/qemu/commit/4b52d63249a508dd927222ffac1a868d38681fc5
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/e1000e.c
M hw/net/igb.c
M hw/net/net_tx_pkt.c
M hw/net/virtio-net.c
M hw/net/vmxnet3.c
M include/net/net.h
M net/dump.c
M net/net.c
M net/netmap.c
M net/tap.c
Log Message:
-----------
tap: Remove qemu_using_vnet_hdr()
Since qemu_set_vnet_hdr_len() is always called when
qemu_using_vnet_hdr() is called, we can merge them and save some code.
For consistency, express that the virtio-net header is not in use by
returning 0 with qemu_get_vnet_hdr_len() instead of having a dedicated
function, qemu_get_using_vnet_hdr().
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: a67753710d5fe6c0eef95229ff5fd9cafb78d862
https://github.com/qemu/qemu/commit/a67753710d5fe6c0eef95229ff5fd9cafb78d862
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M net/net.c
M net/tap.c
Log Message:
-----------
net: Move virtio-net header length assertion
The virtio-net header length assertion should happen for any clients.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: b9ad513e187669db8f5ac238028f6bf25a17c641
https://github.com/qemu/qemu/commit/b9ad513e187669db8f5ac238028f6bf25a17c641
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M include/net/net.h
M net/net.c
M net/tap.c
Log Message:
-----------
net: Remove receive_raw()
While netmap implements virtio-net header, it does not implement
receive_raw(). Instead of implementing receive_raw for netmap, add
virtio-net headers in the common code and use receive_iov()/receive()
instead. This also fixes the buffer size for the virtio-net header.
Fixes: fbbdbddec0 ("tap: allow extended virtio header with hash info")
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 336a058b26bb5229070f1e10ba0f63ae35420adc
https://github.com/qemu/qemu/commit/336a058b26bb5229070f1e10ba0f63ae35420adc
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M net/tap.c
Log Message:
-----------
tap: Call tap_receive_iov() from tap_receive()
This will save duplicate logic found in both of tap_receive_iov() and
tap_receive().
Suggested-by: "Zhang, Chen" <[email protected]>
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 77db537995be8bcab215a99bc9c1b51066b56557
https://github.com/qemu/qemu/commit/77db537995be8bcab215a99bc9c1b51066b56557
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M net/tap.c
Log Message:
-----------
tap: Shrink zeroed virtio-net header
tap prepends a zeroed virtio-net header when writing a packet to a
tap with virtio-net header enabled but not in use. This only happens
when s->host_vnet_hdr_len == sizeof(struct virtio_net_hdr).
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 283be5966eb7ec18fda3e95c979be620dfb8c72a
https://github.com/qemu/qemu/commit/283be5966eb7ec18fda3e95c979be620dfb8c72a
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: Do not propagate ebpf-rss-fds errors
Propagating ebpf-rss-fds errors has several problems.
First, it makes device realization fail and disables the fallback to the
conventional eBPF loading.
Second, it leaks memory by making device realization fail without
freeing memory already allocated.
Third, the convention is to set an error when a function returns false,
but virtio_net_load_ebpf_fds() and virtio_net_load_ebpf() returns false
without setting an error, which is confusing.
Remove the propagation to fix these problems.
Fixes: 0524ea0510a3 ("ebpf: Added eBPF initialization by fds.")
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 8c49756825dab430b17648637735c2736d23f778
https://github.com/qemu/qemu/commit/8c49756825dab430b17648637735c2736d23f778
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: Add only one queue pair when realizing
Multiqueue usage is not negotiated yet when realizing. If more than
one queue is added and the guest never requests to enable multiqueue,
the extra queues will not be deleted when unrealizing and leak.
Fixes: f9d6dbf0bf6e ("virtio-net: remove virtio queues if the guest doesn't
support multiqueue")
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: ad57f700f469ba1b621274053973f76f8f97cf83
https://github.com/qemu/qemu/commit/ad57f700f469ba1b621274053973f76f8f97cf83
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: Copy header only when necessary
The copied header is only used for byte swapping.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 942f420e5cef8cba5daffd6827e6e55e2d17de76
https://github.com/qemu/qemu/commit/942f420e5cef8cba5daffd6827e6e55e2d17de76
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: Shrink header byte swapping buffer
Byte swapping is only performed for the part of header shared with the
legacy standard and the buffer only needs to cover it.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: cef776c03a24576c5913f7e4427b133766531744
https://github.com/qemu/qemu/commit/cef776c03a24576c5913f7e4427b133766531744
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: Disable RSS on reset
RSS is disabled by default.
Fixes: 590790297c ("virtio-net: implement RSS configuration command")
Signed-off-by: Akihiko Odaki <[email protected]>
Reviewed-by: Michael Tokarev <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 0e07198ea3d899b0e7946b1a3d2a439d53415289
https://github.com/qemu/qemu/commit/0e07198ea3d899b0e7946b1a3d2a439d53415289
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: Unify the logic to update NIC state for RSS
The code to attach or detach the eBPF program to RSS were duplicated so
unify them into one function to save some code.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 13d40aa88bdc3eed480a4a4156dc0b84e06d3da7
https://github.com/qemu/qemu/commit/13d40aa88bdc3eed480a4a4156dc0b84e06d3da7
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: Always set populate_hash
The member is not cleared during reset so may have a stale value.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: a4c960eedcd2c68ff784fb4d4cb8ddd5bff8814f
https://github.com/qemu/qemu/commit/a4c960eedcd2c68ff784fb4d4cb8ddd5bff8814f
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: Do not write hashes to peer buffer
The peer buffer is qualified with const and not meant to be modified.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 72fa42cfca7060fab00c534e71fc850b194a4c6d
https://github.com/qemu/qemu/commit/72fa42cfca7060fab00c534e71fc850b194a4c6d
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M ebpf/rss.bpf.skeleton.h
M tools/ebpf/rss.bpf.c
Log Message:
-----------
ebpf: Fix RSS error handling
calculate_rss_hash() was using hash value 0 to tell if it calculated
a hash, but the hash value may be 0 on a rare occasion. Have a
distinct bool value for correctness.
Fixes: f3fa412de2 ("ebpf: Added eBPF RSS program.")
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 8dc8220e23a6d16415b6a0a46785224e8bc7edd1
https://github.com/qemu/qemu/commit/8dc8220e23a6d16415b6a0a46785224e8bc7edd1
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M ebpf/rss.bpf.skeleton.h
M tools/ebpf/rss.bpf.c
Log Message:
-----------
ebpf: Return 0 when configuration fails
The kernel interprets the returned value as an unsigned 32-bit so -1
will mean queue 4294967295, which is awkward. Return 0 instead.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: f5c69e7ab2507553d1a2780e41d924c32dec3c44
https://github.com/qemu/qemu/commit/f5c69e7ab2507553d1a2780e41d924c32dec3c44
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M tools/ebpf/rss.bpf.c
Log Message:
-----------
ebpf: Refactor tun_rss_steering_prog()
This saves branches and makes later BPF program changes easier.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 6832aa80a193d04aaf8e89a64e1825a158290057
https://github.com/qemu/qemu/commit/6832aa80a193d04aaf8e89a64e1825a158290057
Author: Akihiko Odaki <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M tools/ebpf/Makefile.ebpf
Log Message:
-----------
ebpf: Add a separate target for skeleton
This generalizes the rule to generate the skeleton and allows to add
another.
Signed-off-by: Akihiko Odaki <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 2c3e4e2de699cd4d9f6c71f30a22d8f125cd6164
https://github.com/qemu/qemu/commit/2c3e4e2de699cd4d9f6c71f30a22d8f125cd6164
Author: Alexey Dobriyan <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
virtio-net: drop too short packets early
Reproducer from https://gitlab.com/qemu-project/qemu/-/issues/1451
creates small packet (1 segment, len = 10 == n->guest_hdr_len),
then destroys queue.
"if (n->host_hdr_len != n->guest_hdr_len)" is triggered, if body creates
zero length/zero segment packet as there is nothing after guest header.
qemu_sendv_packet_async() tries to send it.
slirp discards it because it is smaller than Ethernet header,
but returns 0 because tx hooks are supposed to return total length of data.
0 is propagated upwards and is interpreted as "packet has been sent"
which is terrible because queue is being destroyed, nobody is waiting for TX
to complete and assert it triggered.
Fix is discard such empty packets instead of sending them.
Length 1 packets will go via different codepath:
virtqueue_push(q->tx_vq, elem, 0);
virtio_notify(vdev, q->tx_vq);
g_free(elem);
and aren't problematic.
Signed-off-by: Alexey Dobriyan <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: dcab53611191f50cf4feabc1d8794d04afe53407
https://github.com/qemu/qemu/commit/dcab53611191f50cf4feabc1d8794d04afe53407
Author: Andrew Melnychenko <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M ebpf/ebpf_rss.c
A ebpf/trace.h
Log Message:
-----------
ebpf: Added traces back. Changed source set for eBPF to 'system'.
There was an issue with Qemu build with "--disable-system".
The traces could be generated and the build fails.
The traces were 'cut out' for previous patches, and overall,
the 'system' source set should be used like in pre-'eBPF blob' patches.
Signed-off-by: Andrew Melnychenko <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
Commit: 6e47f7cfcd78ed8e6f192cb0a4c61f209d0c2aaf
https://github.com/qemu/qemu/commit/6e47f7cfcd78ed8e6f192cb0a4c61f209d0c2aaf
Author: Richard Henderson <[email protected]>
Date: 2024-06-04 (Tue, 04 Jun 2024)
Changed paths:
M ebpf/ebpf_rss.c
M ebpf/rss.bpf.skeleton.h
A ebpf/trace.h
M hw/net/e1000e.c
M hw/net/igb.c
M hw/net/net_tx_pkt.c
M hw/net/virtio-net.c
M hw/net/vmxnet3.c
M include/net/net.h
M net/dump.c
M net/net.c
M net/netmap.c
M net/tap-bsd.c
M net/tap-linux.c
M net/tap-solaris.c
M net/tap-stub.c
M net/tap.c
M net/tap_int.h
M tools/ebpf/Makefile.ebpf
M tools/ebpf/rss.bpf.c
Log Message:
-----------
Merge tag 'net-pull-request' of https://github.com/jasowang/qemu into staging
# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCAAdFiEEIV1G9IJGaJ7HfzVi7wSWWzmNYhEFAmZewo4ACgkQ7wSWWzmN
# YhHhxgf/ZaECxru4fP8wi34XdSG/PR+BF+W5M9gZIRGrHg3vIf3/LRTpZTDccbRN
# Qpwtypr9O6/AWG9Os80rn7alsmMDxN8PDDNLa9T3wf5pJUQSyQ87Yy0MiuTNPSKD
# HKYUIfIlbFCM5WUW4huMmg98gKTgnzZMqOoRyMFZitbkR59qCm+Exws4HtXvCH68
# 3k4lgvnFccmzO9iIzaOUIPs+Yf04Kw/FrY0Q/6nypvqbF2W80Md6w02JMQuTLwdF
# Guxeg/n6g0NLvCBbkjiM2VWfTaWJYbwFSwRTAMxM/geqh7qAgGsmD0N5lPlgqRDy
# uAy2GvFyrwzcD0lYqf0/fRK0Go0HPA==
# =J70K
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 04 Jun 2024 02:30:22 AM CDT
# gpg: using RSA key 215D46F48246689EC77F3562EF04965B398D6211
# gpg: Good signature from "Jason Wang (Jason Wang on RedHat)
<[email protected]>" [undefined]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211
* tag 'net-pull-request' of https://github.com/jasowang/qemu:
ebpf: Added traces back. Changed source set for eBPF to 'system'.
virtio-net: drop too short packets early
ebpf: Add a separate target for skeleton
ebpf: Refactor tun_rss_steering_prog()
ebpf: Return 0 when configuration fails
ebpf: Fix RSS error handling
virtio-net: Do not write hashes to peer buffer
virtio-net: Always set populate_hash
virtio-net: Unify the logic to update NIC state for RSS
virtio-net: Disable RSS on reset
virtio-net: Shrink header byte swapping buffer
virtio-net: Copy header only when necessary
virtio-net: Add only one queue pair when realizing
virtio-net: Do not propagate ebpf-rss-fds errors
tap: Shrink zeroed virtio-net header
tap: Call tap_receive_iov() from tap_receive()
net: Remove receive_raw()
net: Move virtio-net header length assertion
tap: Remove qemu_using_vnet_hdr()
tap: Remove tap_probe_vnet_hdr_len()
Signed-off-by: Richard Henderson <[email protected]>
Compare: https://github.com/qemu/qemu/compare/e2f48260ebe5...6e47f7cfcd78
To unsubscribe from these emails, change your notification settings at
https://github.com/qemu/qemu/settings/notifications