From: Laatz, Kevin <kevin.laatz@intel.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [PATCH 00/11] XDP unaligned chunk placement support
Date: Tue, 25 Jun 2019 14:12:24 +0100 [thread overview]
Message-ID: <e90c81b0-a419-49b0-4e2a-3d20956feb6e@intel.com> (raw)
In-Reply-To: <CAJ+HfNijp8BgMgiOuohiuqDPz+spAutdG34gUqKzepYo2noE-w@mail.gmail.com>
On 24/06/2019 16:38, Bj?rn T?pel wrote:
> On Thu, 20 Jun 2019 at 18:55, Kevin Laatz <kevin.laatz@intel.com> wrote:
>>
>> This patchset adds the ability to use unaligned chunks in the XDP umem.
>>
>> Currently, all chunk addresses passed to the umem are masked to be chunk
>> size aligned (default is 2k, max is PAGE_SIZE). This limits where we can
>> place chunks within the umem as well as limiting the packet sizes
>> that are
>> supported.
>>
>> The changes in this patchset removes these restrictions, allowing XDP
>> to be
>> more flexible in where it can place a chunk within a umem. By
>> relaxing where
>> the chunks can be placed, it allows us to use an arbitrary buffer
>> size and
>> place that wherever we have a free address in the umem. These changes
>> add the
>> ability to support jumboframes and make it easy to integrate with other
>> existing frameworks that have their own memory management systems,
>> such as
>> DPDK.
>>
>
> Thanks for working on this, Kevin and Ciara!
>
> I have some minor comments on the series, but in general I think it's
> in good shape!
>
> For some reason the series was submitted twice (at least on my side)?
Apologies for the confusion... The first set had a typo in the bpf
mailing list address (.com vs .org). Will fix for the v2.
>
>
> Thanks,
> Bj?rn
Thanks for reviewing. Will address your comments in the v2.
>
>> Structure of the patchset:
>> Patch 1:
>> ? - Remove unnecessary masking and headroom addition during zero-copy Rx
>> ??? buffer recycling in i40e. This change is required in order for the
>> ??? buffer recycling to work in the unaligned chunk mode.
>>
>> Patch 2:
>> ? - Remove unnecessary masking and headroom addition during
>> ??? zero-copy Rx buffer recycling in ixgbe. This change is required in
>> ??? order for the? buffer recycling to work in the unaligned chunk mode.
>>
>> Patch 3:
>> ? - Adds an offset parameter to zero_copy_allocator. This change will
>> ??? enable us to calculate the original handle in zca_free. This will be
>> ??? required for unaligned chunk mode since we can't easily mask back to
>> ??? the original handle.
>>
>> Patch 4:
>> ? - Adds the offset parameter to i40e_zca_free. This change is needed
>> for
>> ??? calculating the handle since we can't easily mask back to the
>> original
>> ??? handle like we can in the aligned case.
>>
>> Patch 5:
>> ? - Adds the offset parameter to ixgbe_zca_free. This change is
>> needed for
>> ??? calculating the handle since we can't easily mask back to the
>> original
>> ??? handle like we can in the aligned case.
>>
>>
>> Patch 6:
>> ? - Add infrastructure for unaligned chunks. Since we are dealing
>> ??? with unaligned chunks that could potentially cross a physical page
>> ??? boundary, we add checks to keep track of that information. We can
>> ??? later use this information to correctly handle buffers that are
>> ??? placed at an address where they cross a page boundary.
>>
>> Patch 7:
>> ? - Add flags for umem configuration to libbpf
>>
>> Patch 8:
>> ? - Modify xdpsock application to add a command line option for
>> ??? unaligned chunks
>>
>> Patch 9:
>> ? - Addition of command line argument to pass in a desired buffer size
>> ??? and buffer recycling for unaligned mode. Passing in a buffer size
>> will
>> ??? allow the application to use unaligned chunks with the unaligned
>> chunk
>> ??? mode. Since we are now using unaligned chunks, we need to recycle
>> our
>> ??? buffers in a slightly different way.
>>
>> Patch 10:
>> ? - Adds hugepage support to the xdpsock application
>>
>> Patch 11:
>> ? - Documentation update to include the unaligned chunk scenario. We
>> need
>> ??? to explicitly state that the incoming addresses are only masked
>> in the
>> ??? aligned chunk mode and not the unaligned chunk mode.
>>
>> Kevin Laatz (11):
>> ? i40e: simplify Rx buffer recycle
>> ? ixgbe: simplify Rx buffer recycle
>> ? xdp: add offset param to zero_copy_allocator
>> ? i40e: add offset to zca_free
>> ? ixgbe: add offset to zca_free
>> ? xsk: add support to allow unaligned chunk placement
>> ? libbpf: add flags to umem config
>> ? samples/bpf: add unaligned chunks mode support to xdpsock
>> ? samples/bpf: add buffer recycling for unaligned chunks to xdpsock
>> ? samples/bpf: use hugepages in xdpsock app
>> ? doc/af_xdp: include unaligned chunk case
>>
>> ?Documentation/networking/af_xdp.rst?????????? | 10 +-
>> ?drivers/net/ethernet/intel/i40e/i40e_xsk.c??? | 21 ++--
>> ?drivers/net/ethernet/intel/i40e/i40e_xsk.h??? |? 3 +-
>> ?.../ethernet/intel/ixgbe/ixgbe_txrx_common.h? |? 3 +-
>> ?drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c? | 21 ++--
>> ?include/net/xdp.h???????????????????????????? |? 3 +-
>> ?include/net/xdp_sock.h??????????????????????? |? 2 +
>> ?include/uapi/linux/if_xdp.h?????????????????? |? 4 +
>> ?net/core/xdp.c??????????????????????????????? | 11 ++-
>> ?net/xdp/xdp_umem.c??????????????????????????? | 17 ++--
>> ?net/xdp/xsk.c???????????????????????????????? | 60 +++++++++--
>> ?net/xdp/xsk_queue.h?????????????????????????? | 60 +++++++++--
>> ?samples/bpf/xdpsock_user.c??????????????????? | 99 ++++++++++++++-----
>> ?tools/include/uapi/linux/if_xdp.h???????????? |? 4 +
>> ?tools/lib/bpf/xsk.c?????????????????????????? |? 7 ++
>> ?tools/lib/bpf/xsk.h?????????????????????????? |? 2 +
>> ?16 files changed, 241 insertions(+), 86 deletions(-)
>>
>> --
>> 2.17.1
>>
>
next prev parent reply other threads:[~2019-06-25 13:12 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-20 8:39 [Intel-wired-lan] [PATCH 00/11] XDP unaligned chunk placement support Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 01/11] i40e: simplify Rx buffer recycle Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 02/11] ixgbe: " Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 03/11] xdp: add offset param to zero_copy_allocator Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 04/11] i40e: add offset to zca_free Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 05/11] ixgbe: " Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 06/11] xsk: add support to allow unaligned chunk placement Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 07/11] libbpf: add flags to umem config Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 08/11] samples/bpf: add unaligned chunks mode support to xdpsock Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 09/11] samples/bpf: add buffer recycling for unaligned chunks " Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 10/11] samples/bpf: use hugepages in xdpsock app Kevin Laatz
2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 11/11] doc/af_xdp: include unaligned chunk case Kevin Laatz
2019-06-24 15:38 ` [Intel-wired-lan] [PATCH 00/11] XDP unaligned chunk placement support =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?=
2019-06-25 13:12 ` Laatz, Kevin [this message]
2019-06-25 18:44 ` Jonathan Lemon
2019-06-27 11:14 ` Laatz, Kevin
2019-06-27 21:25 ` Jakub Kicinski
2019-06-28 16:19 ` Laatz, Kevin
2019-06-28 16:51 ` =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?=
2019-06-28 20:08 ` Jakub Kicinski
2019-06-28 20:25 ` Jakub Kicinski
2019-06-28 20:29 ` Jonathan Lemon
2019-07-01 14:44 ` Laatz, Kevin
2019-07-01 21:20 ` Jakub Kicinski
2019-07-02 9:27 ` Richardson, Bruce
2019-07-02 16:33 ` Jonathan Lemon
2019-07-01 14:58 ` Laatz, Kevin
-- strict thread matches above, loose matches on Subject: below --
2019-06-20 9:09 Kevin Laatz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e90c81b0-a419-49b0-4e2a-3d20956feb6e@intel.com \
--to=kevin.laatz@intel.com \
--cc=intel-wired-lan@osuosl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox