diff for duplicates of <e549e399-089e-f423-169f-81ac9f831cad@intel.com>
diff --git a/a/1.txt b/N1/1.txt
index dcb6f29..6ffc362 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -20,80 +20,80 @@ On 22/08/2019 19:43, Jonathan Lemon wrote:
>>
>> ---
>> v2:
->> - Add checks for the flags coming from userspace
->> - Fix how we get chunk_size in xsk_diag.c
->> - Add defines for masking the new descriptor format
->> - Modified the rx functions to use new descriptor format
->> - Modified the tx functions to use new descriptor format
+>> ? - Add checks for the flags coming from userspace
+>> ? - Fix how we get chunk_size in xsk_diag.c
+>> ? - Add defines for masking the new descriptor format
+>> ? - Modified the rx functions to use new descriptor format
+>> ? - Modified the tx functions to use new descriptor format
>>
>> v3:
->> - Add helper function to do address/offset masking/addition
+>> ? - Add helper function to do address/offset masking/addition
>>
>> v4:
->> - fixed page_start calculation in __xsk_rcv_memcpy().
->> - move offset handling to the xdp_umem_get_* functions
->> - modified the len field in xdp_umem_reg struct. We now use 16 bits
+>> ? - fixed page_start calculation in __xsk_rcv_memcpy().
+>> ? - move offset handling to the xdp_umem_get_* functions
+>> ? - modified the len field in xdp_umem_reg struct. We now use 16 bits
>> from
->> this for the flags field.
->> - removed next_pg_contig field from xdp_umem_page struct. Using low 12
->> bits of addr to store flags instead.
->> - other minor changes based on review comments
+>> ??? this for the flags field.
+>> ? - removed next_pg_contig field from xdp_umem_page struct. Using low 12
+>> ??? bits of addr to store flags instead.
+>> ? - other minor changes based on review comments
>>
>> v5:
->> - Added accessors for getting addr and offset
->> - Added helper function to add offset to addr
->> - Fixed offset handling in xsk_rcv
->> - Removed bitfields from xdp_umem_reg
->> - Added struct size checking for xdp_umem_reg in xsk_setsockopt to
+>> ? - Added accessors for getting addr and offset
+>> ? - Added helper function to add offset to addr
+>> ? - Fixed offset handling in xsk_rcv
+>> ? - Removed bitfields from xdp_umem_reg
+>> ? - Added struct size checking for xdp_umem_reg in xsk_setsockopt to
>> handle
->> different versions of the struct.
->> - fix conflicts after 'bpf-af-xdp-wakeup' was merged.
+>> ??? different versions of the struct.
+>> ? - fix conflicts after 'bpf-af-xdp-wakeup' was merged.
>> ---
->> include/net/xdp_sock.h | 75 +++++++++++++++++++++++++++--
->> include/uapi/linux/if_xdp.h | 9 ++++
->> net/xdp/xdp_umem.c | 19 ++++++--
->> net/xdp/xsk.c | 96 +++++++++++++++++++++++++++++--------
->> net/xdp/xsk_diag.c | 2 +-
->> net/xdp/xsk_queue.h | 68 ++++++++++++++++++++++----
->> 6 files changed, 232 insertions(+), 37 deletions(-)
+>> ?include/net/xdp_sock.h????? | 75 +++++++++++++++++++++++++++--
+>> ?include/uapi/linux/if_xdp.h |? 9 ++++
+>> ?net/xdp/xdp_umem.c????????? | 19 ++++++--
+>> ?net/xdp/xsk.c?????????????? | 96 +++++++++++++++++++++++++++++--------
+>> ?net/xdp/xsk_diag.c????????? |? 2 +-
+>> ?net/xdp/xsk_queue.h???????? | 68 ++++++++++++++++++++++----
+>> ?6 files changed, 232 insertions(+), 37 deletions(-)
>>
>>
[...]
>> @@ -196,17 +221,17 @@ int xsk_generic_rcv(struct xdp_sock *xs, struct
>> xdp_buff *xdp)
->> goto out_unlock;
->> }
+>> ???????? goto out_unlock;
+>> ???? }
>>
->> - if (!xskq_peek_addr(xs->umem->fq, &addr) ||
->> + if (!xskq_peek_addr(xs->umem->fq, &addr, xs->umem) ||
->> len > xs->umem->chunk_size_nohr - XDP_PACKET_HEADROOM) {
->> err = -ENOSPC;
->> goto out_drop;
->> }
+>> -??? if (!xskq_peek_addr(xs->umem->fq, &addr) ||
+>> +??? if (!xskq_peek_addr(xs->umem->fq, &addr, xs->umem) ||
+>> ???????? len > xs->umem->chunk_size_nohr - XDP_PACKET_HEADROOM) {
+>> ???????? err = -ENOSPC;
+>> ???????? goto out_drop;
+>> ???? }
>>
->> - addr += xs->umem->headroom;
+>> -??? addr += xs->umem->headroom;
>> -
->> - buffer = xdp_umem_get_data(xs->umem, addr);
->> + buffer = xdp_umem_get_data(xs->umem, addr + offset);
->> memcpy(buffer, xdp->data_meta, len + metalen);
->> - addr += metalen;
->> + offset += metalen;
+>> -??? buffer = xdp_umem_get_data(xs->umem, addr);
+>> +??? buffer = xdp_umem_get_data(xs->umem, addr + offset);
+>> ???? memcpy(buffer, xdp->data_meta, len + metalen);
+>> -??? addr += metalen;
+>> +??? offset += metalen;
>> +
->> + addr = xsk_umem_adjust_offset(xs->umem, addr, offset);
->> err = xskq_produce_batch_desc(xs->rx, addr, len);
->> if (err)
->> goto out_drop;
+>> +??? addr = xsk_umem_adjust_offset(xs->umem, addr, offset);
+>> ???? err = xskq_produce_batch_desc(xs->rx, addr, len);
+>> ???? if (err)
+>> ???????? goto out_drop;
>
-> Can't just add address and offset any longer. This should read:
+> Can't just add address and offset any longer.? This should read:
>
-> addr = xsk_umem_adjust_offset(xs->umem, addr, offset);
-> buffer = xdp_umem_get_data(xs->umem, addr);
+> ????addr = xsk_umem_adjust_offset(xs->umem, addr, offset);
+> ????buffer = xdp_umem_get_data(xs->umem, addr);
>
-> addr = xsk_umem_adjust_offset(xs->umem, addr, metalen);
+> ????addr = xsk_umem_adjust_offset(xs->umem, addr, metalen);
>
>
-> so that offset and then metalen are added. (or preserve the
+> so that offset and then metalen are added.? (or preserve the
> address across the calls like memcpy_addr earlier).
diff --git a/a/content_digest b/N1/content_digest
index ad8300b..c30acfc 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -14,28 +14,13 @@
"From\0Laatz, Kevin <kevin.laatz\@intel.com>\0"
]
[
- "Subject\0Re: [PATCH bpf-next v5 03/11] xsk: add support to allow unaligned chunk placement\0"
+ "Subject\0[Intel-wired-lan] [PATCH bpf-next v5 03/11] xsk: add support to allow unaligned chunk placement\0"
]
[
"Date\0Fri, 23 Aug 2019 14:35:40 +0100\0"
]
[
- "To\0Jonathan Lemon <jonathan.lemon\@gmail.com>\0"
-]
-[
- "Cc\0netdev\@vger.kernel.org",
- " ast\@kernel.org",
- " daniel\@iogearbox.net",
- " bjorn.topel\@intel.com",
- " magnus.karlsson\@intel.com",
- " jakub.kicinski\@netronome.com",
- " saeedm\@mellanox.com",
- " maximmi\@mellanox.com",
- " stephen\@networkplumber.org",
- " bruce.richardson\@intel.com",
- " ciara.loftus\@intel.com",
- " bpf\@vger.kernel.org",
- " intel-wired-lan\@lists.osuosl.org\0"
+ "To\0intel-wired-lan\@osuosl.org\0"
]
[
"\0000:1\0"
@@ -66,80 +51,80 @@
">>\n",
">> ---\n",
">> v2:\n",
- ">> \302\240 - Add checks for the flags coming from userspace\n",
- ">> \302\240 - Fix how we get chunk_size in xsk_diag.c\n",
- ">> \302\240 - Add defines for masking the new descriptor format\n",
- ">> \302\240 - Modified the rx functions to use new descriptor format\n",
- ">> \302\240 - Modified the tx functions to use new descriptor format\n",
+ ">> ? - Add checks for the flags coming from userspace\n",
+ ">> ? - Fix how we get chunk_size in xsk_diag.c\n",
+ ">> ? - Add defines for masking the new descriptor format\n",
+ ">> ? - Modified the rx functions to use new descriptor format\n",
+ ">> ? - Modified the tx functions to use new descriptor format\n",
">>\n",
">> v3:\n",
- ">> \302\240 - Add helper function to do address/offset masking/addition\n",
+ ">> ? - Add helper function to do address/offset masking/addition\n",
">>\n",
">> v4:\n",
- ">> \302\240 - fixed page_start calculation in __xsk_rcv_memcpy().\n",
- ">> \302\240 - move offset handling to the xdp_umem_get_* functions\n",
- ">> \302\240 - modified the len field in xdp_umem_reg struct. We now use 16 bits \n",
+ ">> ? - fixed page_start calculation in __xsk_rcv_memcpy().\n",
+ ">> ? - move offset handling to the xdp_umem_get_* functions\n",
+ ">> ? - modified the len field in xdp_umem_reg struct. We now use 16 bits \n",
">> from\n",
- ">> \302\240\302\240\302\240 this for the flags field.\n",
- ">> \302\240 - removed next_pg_contig field from xdp_umem_page struct. Using low 12\n",
- ">> \302\240\302\240\302\240 bits of addr to store flags instead.\n",
- ">> \302\240 - other minor changes based on review comments\n",
+ ">> ??? this for the flags field.\n",
+ ">> ? - removed next_pg_contig field from xdp_umem_page struct. Using low 12\n",
+ ">> ??? bits of addr to store flags instead.\n",
+ ">> ? - other minor changes based on review comments\n",
">>\n",
">> v5:\n",
- ">> \302\240 - Added accessors for getting addr and offset\n",
- ">> \302\240 - Added helper function to add offset to addr\n",
- ">> \302\240 - Fixed offset handling in xsk_rcv\n",
- ">> \302\240 - Removed bitfields from xdp_umem_reg\n",
- ">> \302\240 - Added struct size checking for xdp_umem_reg in xsk_setsockopt to \n",
+ ">> ? - Added accessors for getting addr and offset\n",
+ ">> ? - Added helper function to add offset to addr\n",
+ ">> ? - Fixed offset handling in xsk_rcv\n",
+ ">> ? - Removed bitfields from xdp_umem_reg\n",
+ ">> ? - Added struct size checking for xdp_umem_reg in xsk_setsockopt to \n",
">> handle\n",
- ">> \302\240\302\240\302\240 different versions of the struct.\n",
- ">> \302\240 - fix conflicts after 'bpf-af-xdp-wakeup' was merged.\n",
+ ">> ??? different versions of the struct.\n",
+ ">> ? - fix conflicts after 'bpf-af-xdp-wakeup' was merged.\n",
">> ---\n",
- ">> \302\240include/net/xdp_sock.h\302\240\302\240\302\240\302\240\302\240 | 75 +++++++++++++++++++++++++++--\n",
- ">> \302\240include/uapi/linux/if_xdp.h |\302\240 9 ++++\n",
- ">> \302\240net/xdp/xdp_umem.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 | 19 ++++++--\n",
- ">> \302\240net/xdp/xsk.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 | 96 +++++++++++++++++++++++++++++--------\n",
- ">> \302\240net/xdp/xsk_diag.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 |\302\240 2 +-\n",
- ">> \302\240net/xdp/xsk_queue.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 | 68 ++++++++++++++++++++++----\n",
- ">> \302\2406 files changed, 232 insertions(+), 37 deletions(-)\n",
+ ">> ?include/net/xdp_sock.h????? | 75 +++++++++++++++++++++++++++--\n",
+ ">> ?include/uapi/linux/if_xdp.h |? 9 ++++\n",
+ ">> ?net/xdp/xdp_umem.c????????? | 19 ++++++--\n",
+ ">> ?net/xdp/xsk.c?????????????? | 96 +++++++++++++++++++++++++++++--------\n",
+ ">> ?net/xdp/xsk_diag.c????????? |? 2 +-\n",
+ ">> ?net/xdp/xsk_queue.h???????? | 68 ++++++++++++++++++++++----\n",
+ ">> ?6 files changed, 232 insertions(+), 37 deletions(-)\n",
">>\n",
">>\n",
"[...]\n",
"\n",
">> \@\@ -196,17 +221,17 \@\@ int xsk_generic_rcv(struct xdp_sock *xs, struct \n",
">> xdp_buff *xdp)\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_unlock;\n",
- ">> \302\240\302\240\302\240\302\240 }\n",
+ ">> ???????? goto out_unlock;\n",
+ ">> ???? }\n",
">>\n",
- ">> -\302\240\302\240\302\240 if (!xskq_peek_addr(xs->umem->fq, &addr) ||\n",
- ">> +\302\240\302\240\302\240 if (!xskq_peek_addr(xs->umem->fq, &addr, xs->umem) ||\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 len > xs->umem->chunk_size_nohr - XDP_PACKET_HEADROOM) {\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 err = -ENOSPC;\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_drop;\n",
- ">> \302\240\302\240\302\240\302\240 }\n",
+ ">> -??? if (!xskq_peek_addr(xs->umem->fq, &addr) ||\n",
+ ">> +??? if (!xskq_peek_addr(xs->umem->fq, &addr, xs->umem) ||\n",
+ ">> ???????? len > xs->umem->chunk_size_nohr - XDP_PACKET_HEADROOM) {\n",
+ ">> ???????? err = -ENOSPC;\n",
+ ">> ???????? goto out_drop;\n",
+ ">> ???? }\n",
">>\n",
- ">> -\302\240\302\240\302\240 addr += xs->umem->headroom;\n",
+ ">> -??? addr += xs->umem->headroom;\n",
">> -\n",
- ">> -\302\240\302\240\302\240 buffer = xdp_umem_get_data(xs->umem, addr);\n",
- ">> +\302\240\302\240\302\240 buffer = xdp_umem_get_data(xs->umem, addr + offset);\n",
- ">> \302\240\302\240\302\240\302\240 memcpy(buffer, xdp->data_meta, len + metalen);\n",
- ">> -\302\240\302\240\302\240 addr += metalen;\n",
- ">> +\302\240\302\240\302\240 offset += metalen;\n",
+ ">> -??? buffer = xdp_umem_get_data(xs->umem, addr);\n",
+ ">> +??? buffer = xdp_umem_get_data(xs->umem, addr + offset);\n",
+ ">> ???? memcpy(buffer, xdp->data_meta, len + metalen);\n",
+ ">> -??? addr += metalen;\n",
+ ">> +??? offset += metalen;\n",
">> +\n",
- ">> +\302\240\302\240\302\240 addr = xsk_umem_adjust_offset(xs->umem, addr, offset);\n",
- ">> \302\240\302\240\302\240\302\240 err = xskq_produce_batch_desc(xs->rx, addr, len);\n",
- ">> \302\240\302\240\302\240\302\240 if (err)\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_drop;\n",
+ ">> +??? addr = xsk_umem_adjust_offset(xs->umem, addr, offset);\n",
+ ">> ???? err = xskq_produce_batch_desc(xs->rx, addr, len);\n",
+ ">> ???? if (err)\n",
+ ">> ???????? goto out_drop;\n",
">\n",
- "> Can't just add address and offset any longer.\302\240 This should read:\n",
+ "> Can't just add address and offset any longer.? This should read:\n",
">\n",
- "> \302\240\302\240\302\240\302\240addr = xsk_umem_adjust_offset(xs->umem, addr, offset);\n",
- "> \302\240\302\240\302\240\302\240buffer = xdp_umem_get_data(xs->umem, addr);\n",
+ "> ????addr = xsk_umem_adjust_offset(xs->umem, addr, offset);\n",
+ "> ????buffer = xdp_umem_get_data(xs->umem, addr);\n",
">\n",
- "> \302\240\302\240\302\240\302\240addr = xsk_umem_adjust_offset(xs->umem, addr, metalen);\n",
+ "> ????addr = xsk_umem_adjust_offset(xs->umem, addr, metalen);\n",
">\n",
">\n",
- "> so that offset and then metalen are added.\302\240 (or preserve the\n",
+ "> so that offset and then metalen are added.? (or preserve the\n",
"> address across the calls like memcpy_addr earlier).\n",
"\n",
"\n",
@@ -148,4 +133,4 @@
"-Kevin"
]
-2ef59c340cda6b9982cad178ac99363fbc0a8822f609f8cc187291535a9717f7
+b4069911e07d7bb98de8088b1e9f1faaf88a1319248cfc837aa32e57ca5b8022
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.