Intel-Wired-Lan Archive on lore.kernel.org
 help / color / mirror / Atom feed
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
>>
>

  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