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

Ye Xiaolong xiaolong.ye at intel.com
Mon Jun 17 17:27:24 CEST 2019


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?

Thanks,
Xiaolong

>
>
>-- 
>David Marchand


More information about the dev mailing list