[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH RESEND v7 08/19] virtio-net: Disable RSS on reset
|
From: |
Akihiko Odaki |
|
Subject: |
[PATCH RESEND v7 08/19] virtio-net: Disable RSS on reset |
|
Date: |
Sat, 18 Nov 2023 18:25:48 +0900 |
RSS is disabled by default.
Fixes: 590790297c ("virtio-net: implement RSS configuration command")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
---
hw/net/virtio-net.c | 70 +++++++++++++++++++++++----------------------
1 file changed, 36 insertions(+), 34 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index b6223031e1..4c528baad9 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -599,40 +599,6 @@ static void virtio_net_queue_enable(VirtIODevice *vdev,
uint32_t queue_index)
}
}
-static void virtio_net_reset(VirtIODevice *vdev)
-{
- VirtIONet *n = VIRTIO_NET(vdev);
- int i;
-
- /* Reset back to compatibility mode */
- n->promisc = 1;
- n->allmulti = 0;
- n->alluni = 0;
- n->nomulti = 0;
- n->nouni = 0;
- n->nobcast = 0;
- /* multiqueue is disabled by default */
- n->curr_queue_pairs = 1;
- timer_del(n->announce_timer.tm);
- n->announce_timer.round = 0;
- n->status &= ~VIRTIO_NET_S_ANNOUNCE;
-
- /* Flush any MAC and VLAN filter table state */
- n->mac_table.in_use = 0;
- n->mac_table.first_multi = 0;
- n->mac_table.multi_overflow = 0;
- n->mac_table.uni_overflow = 0;
- memset(n->mac_table.macs, 0, MAC_TABLE_ENTRIES * ETH_ALEN);
- memcpy(&n->mac[0], &n->nic->conf->macaddr, sizeof(n->mac));
- qemu_format_nic_info_str(qemu_get_queue(n->nic), n->mac);
- memset(n->vlans, 0, MAX_VLAN >> 3);
-
- /* Flush any async TX */
- for (i = 0; i < n->max_queue_pairs; i++) {
- flush_or_purge_queued_packets(qemu_get_subqueue(n->nic, i));
- }
-}
-
static void peer_test_vnet_hdr(VirtIONet *n)
{
NetClientState *nc = qemu_get_queue(n->nic);
@@ -3805,6 +3771,42 @@ static void virtio_net_device_unrealize(DeviceState *dev)
virtio_cleanup(vdev);
}
+static void virtio_net_reset(VirtIODevice *vdev)
+{
+ VirtIONet *n = VIRTIO_NET(vdev);
+ int i;
+
+ /* Reset back to compatibility mode */
+ n->promisc = 1;
+ n->allmulti = 0;
+ n->alluni = 0;
+ n->nomulti = 0;
+ n->nouni = 0;
+ n->nobcast = 0;
+ /* multiqueue is disabled by default */
+ n->curr_queue_pairs = 1;
+ timer_del(n->announce_timer.tm);
+ n->announce_timer.round = 0;
+ n->status &= ~VIRTIO_NET_S_ANNOUNCE;
+
+ /* Flush any MAC and VLAN filter table state */
+ n->mac_table.in_use = 0;
+ n->mac_table.first_multi = 0;
+ n->mac_table.multi_overflow = 0;
+ n->mac_table.uni_overflow = 0;
+ memset(n->mac_table.macs, 0, MAC_TABLE_ENTRIES * ETH_ALEN);
+ memcpy(&n->mac[0], &n->nic->conf->macaddr, sizeof(n->mac));
+ qemu_format_nic_info_str(qemu_get_queue(n->nic), n->mac);
+ memset(n->vlans, 0, MAX_VLAN >> 3);
+
+ /* Flush any async TX */
+ for (i = 0; i < n->max_queue_pairs; i++) {
+ flush_or_purge_queued_packets(qemu_get_subqueue(n->nic, i));
+ }
+
+ virtio_net_disable_rss(n);
+}
+
static void virtio_net_instance_init(Object *obj)
{
VirtIONet *n = VIRTIO_NET(obj);
--
2.42.1
- [PATCH RESEND v7 00/19] virtio-net RSS/hash report fixes and improvements, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 01/19] tap: Remove tap_probe_vnet_hdr_len(), Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 02/19] tap: Remove qemu_using_vnet_hdr(), Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 03/19] net: Move virtio-net header length assertion, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 04/19] net: Remove receive_raw(), Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 05/19] tap: Call tap_receive_iov() from tap_receive(), Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 06/19] tap: Shrink zeroed virtio-net header, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 07/19] virtio-net: Copy header only when necessary, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 08/19] virtio-net: Disable RSS on reset,
Akihiko Odaki <=
- [PATCH RESEND v7 09/19] virtio-net: Unify the logic to update NIC state for RSS, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 10/19] virtio-net: Return an error when vhost cannot enable RSS, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 11/19] virtio-net: Report RSS warning at device realization, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 12/19] virtio-net: Always set populate_hash, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 13/19] virtio-net: Do not write hashes to peer buffer, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 14/19] ebpf: Fix RSS error handling, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 16/19] ebpf: Simplify error handling, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 15/19] ebpf: Use standard section name, Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 18/19] ebpf: Refactor tun_rss_steering_prog(), Akihiko Odaki, 2023/11/18
- [PATCH RESEND v7 19/19] ebpf: Add a separate target for skeleton, Akihiko Odaki, 2023/11/18