[dpdk-dev] [PATCH v1] net/af_xdp: support need wakeup feature

David Marchand david.marchand at redhat.com
Mon Jun 17 10:51:52 CEST 2019


On Mon, Jun 17, 2019 at 10:45 AM Ye Xiaolong <xiaolong.ye at intel.com> wrote:

> On 06/17, David Marchand wrote:
> >On Mon, Jun 17, 2019 at 9:42 AM Xiaolong Ye <xiaolong.ye at intel.com>
> wrote:
> >
> >> This patch adds a new devarg to support the need_wakeup flag for Tx and
> >> fill rings, when this flag is set by the driver, it means that the
> >> userspace application has to explicitly wake up the kernel Rx or kernel
> Tx
> >> processing by issuing a syscall. Poll() can wake up both and sendto() or
> >> its alternatives will wake up Tx processing only.
> >>
> >> This feature is to provide efficient support for case that application
> and
> >> driver are executing on the same core.
> >>
> >> Signed-off-by: Xiaolong Ye <xiaolong.ye at intel.com>
> >> ---
> >>
> >> Original busy poll feature has morphed into need_wakeup flag in
> >> kernel side, the main purpose is the same, that is to support both
> >> application and driver executing on the same core efficiently.
> >>
> >> kernel side patchset can be found at netdev mailing list.
> >>
> >>
> https://lore.kernel.org/netdev/CAJ8uoz2szX=+JXXAMyuVmvSsMXZuDqp6a8rjDQpTioxbZwxFmQ@mail.gmail.com/T/#t
> >>
> >> It is targeted for v5.3
> >>
> >
> >- Is this really optional? Adding too many options is just a nightmare
> >later...
>
> Hmm, I think we can remove this option and alway turn the need_wakeup flag
> on
> since it provides better performance for 1 core case and doesn't downgrage
> the
> 2 core case performance.
>
> >
> >- I suppose this will break compilation with kernels that have af_xdp but
> >are < 5.3.
>
> Yes, that is true. It will break the compilation with early kernel, I feel
> it's
> sort of common issue, we enable some features in dpdk that's based on
> kernel
> features, then kernel side features keep evolving, we need to keep the
> pace,
> but it will hurt the compatiblity with the old kernel.
>
> What's dpdk's convention for handling this kind of case? Add some notes in
> doc
> to reminder the prerequisite or use the KERNEL_VERSION macro in code?
>

Rather than a kernel version, you can check that XDP_USE_NEED_WAKEUP is
defined (present in the uapi kernel header).


-- 
David Marchand


More information about the dev mailing list