Thread (42 messages) flat view 42 messages, 8 authors, 2020-09-09

Re: [PATCH v2 net-next 1/9] xdp: introduce mb in xdp_buff/xdp_frame

From: Alexei Starovoitov <hidden>
Date: 2020-09-04 01:07:11
Also in: bpf

On Thu, Sep 03, 2020 at 10:58:45PM +0200, Lorenzo Bianconi wrote:
quoted hunk ↗ jump to hunk
Introduce multi-buffer bit (mb) in xdp_frame/xdp_buffer to specify
if shared_info area has been properly initialized for non-linear
xdp buffers

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 include/net/xdp.h | 8 ++++++--
 net/core/xdp.c    | 1 +
 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/include/net/xdp.h b/include/net/xdp.h
index 3814fb631d52..42f439f9fcda 100644
--- a/include/net/xdp.h
+++ b/include/net/xdp.h
@@ -72,7 +72,8 @@ struct xdp_buff {
 	void *data_hard_start;
 	struct xdp_rxq_info *rxq;
 	struct xdp_txq_info *txq;
-	u32 frame_sz; /* frame size to deduce data_hard_end/reserved tailroom*/
+	u32 frame_sz:31; /* frame size to deduce data_hard_end/reserved tailroom*/
+	u32 mb:1; /* xdp non-linear buffer */
 };
 
 /* Reserve memory area at end-of data area.
@@ -96,7 +97,8 @@ struct xdp_frame {
 	u16 len;
 	u16 headroom;
 	u32 metasize:8;
-	u32 frame_sz:24;
+	u32 frame_sz:23;
+	u32 mb:1; /* xdp non-linear frame */
Hmm. Last time I checked compilers were generating ugly code with bitfields.
Not performant and not efficient.
frame_sz is used in the fast path.
I suspect the first hunk alone will cause performance degradation.
Could you use normal u8 or u32 flag field?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help