[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 19/20] ebpf: Refactor tun_rss_steering_prog()
From: |
Akihiko Odaki |
Subject: |
[PATCH v4 19/20] ebpf: Refactor tun_rss_steering_prog() |
Date: |
Sun, 15 Oct 2023 23:02:51 +0900 |
This saves branches and makes later BPF program changes easier.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
tools/ebpf/rss.bpf.c | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/tools/ebpf/rss.bpf.c b/tools/ebpf/rss.bpf.c
index 22c75d5912..012af38df1 100644
--- a/tools/ebpf/rss.bpf.c
+++ b/tools/ebpf/rss.bpf.c
@@ -544,27 +544,23 @@ int tun_rss_steering_prog(struct __sk_buff *skb)
config = bpf_map_lookup_elem(&tap_rss_map_configurations, &key);
toe = bpf_map_lookup_elem(&tap_rss_map_toeplitz_key, &key);
- if (config && toe) {
- if (!config->redirect) {
- return config->default_queue;
- }
+ if (!config || !toe) {
+ return 0;
+ }
- if (calculate_rss_hash(skb, config, toe, &hash)) {
- __u32 table_idx = hash % config->indirections_len;
- __u16 *queue = 0;
+ if (config->redirect && calculate_rss_hash(skb, config, toe, &hash)) {
+ __u32 table_idx = hash % config->indirections_len;
+ __u16 *queue = 0;
- queue = bpf_map_lookup_elem(&tap_rss_map_indirection_table,
- &table_idx);
+ queue = bpf_map_lookup_elem(&tap_rss_map_indirection_table,
+ &table_idx);
- if (queue) {
- return *queue;
- }
+ if (queue) {
+ return *queue;
}
-
- return config->default_queue;
}
- return 0;
+ return config->default_queue;
}
char _license[] SEC("license") = "GPL v2";
--
2.42.0
- [PATCH v4 07/20] tap: Shrink zeroed virtio-net header, (continued)
- [PATCH v4 07/20] tap: Shrink zeroed virtio-net header, Akihiko Odaki, 2023/10/15
- [PATCH v4 08/20] virtio-net: Copy header only when necessary, Akihiko Odaki, 2023/10/15
- [PATCH v4 09/20] virtio-net: Disable RSS on reset, Akihiko Odaki, 2023/10/15
- [PATCH v4 10/20] virtio-net: Unify the logic to update NIC state for RSS, Akihiko Odaki, 2023/10/15
- [PATCH v4 11/20] virtio-net: Return an error when vhost cannot enable RSS, Akihiko Odaki, 2023/10/15
- [PATCH v4 12/20] virtio-net: Always set populate_hash, Akihiko Odaki, 2023/10/15
- [PATCH v4 13/20] virtio-net: Do not clear VIRTIO_NET_F_RSS, Akihiko Odaki, 2023/10/15
- [PATCH v4 14/20] virtio-net: Do not clear VIRTIO_NET_F_HASH_REPORT, Akihiko Odaki, 2023/10/15
- [PATCH v4 15/20] ebpf: Fix RSS error handling, Akihiko Odaki, 2023/10/15
- [PATCH v4 17/20] ebpf: Simplify error handling, Akihiko Odaki, 2023/10/15
- [PATCH v4 19/20] ebpf: Refactor tun_rss_steering_prog(),
Akihiko Odaki <=
- [PATCH v4 16/20] ebpf: Use standard section name, Akihiko Odaki, 2023/10/15
- [PATCH v4 20/20] ebpf: Add a separate target for skeleton, Akihiko Odaki, 2023/10/15
- [PATCH v4 18/20] ebpf: Return 0 when configuration fails, Akihiko Odaki, 2023/10/15
- Re: [PATCH v4 00/20] virtio-net RSS/hash report fixes and improvements, Michael S. Tsirkin, 2023/10/18