[dpdk-dev] 回复: [RFC PATCH v1 0/5] add new API for wait until scheme
Feifei Wang
Feifei.Wang2 at arm.com
Fri Sep 3 09:02:50 CEST 2021
Hi, Stephen
Thanks for the reviewing. I think it is a good comment.
According to the comments, we plan to change this API as follow:
#define wait_until_event_16(addr, mask, expected, op, memorder)
uint16_t value
__LOAD_EXC_16(addr, value, memorder)
if ((value&mask) op expected) {
__SEVL()
do {
__WFE()
__LOAD_EXC_16(addr, value, memorder)
} while ((value&mask) op expected);
1. According to the size, there will be three definitions: 16/32/64 bits
2. op is defined for a symbol(!= or ==), I'm not sure whether it is legal in dpdk.
3. If the case is not 'wait_part_equal/unequal', mask can be 0xFF.
Have you any more comments for this change?
Best Regards
Feifei
> -----邮件原件-----
> 发件人: Stephen Hemminger <stephen at networkplumber.org>
> 发送时间: Thursday, September 2, 2021 11:22 PM
> 收件人: Feifei Wang <Feifei.Wang2 at arm.com>
> 抄送: dev at dpdk.org; nd <nd at arm.com>
> 主题: Re: [dpdk-dev] [RFC PATCH v1 0/5] add new API for wait until scheme
>
> On Thu, 2 Sep 2021 13:32:48 +0800
> Feifei Wang <feifei.wang2 at arm.com> wrote:
>
> > Add new API for wait_until scheme, and apply this new API into lib to
> > replace rte_pause.
> >
> > Feifei Wang (5):
> > eal: add new API for wait until scheme
> > eal: use wait until scheme for read pflock
> > eal: use wait until scheme for mcslock
> > lib/bpf: use wait until scheme for Rx/Tx iteration
> > lib/distributor: use wait until scheme
> >
> > lib/bpf/bpf_pkt.c | 11 +-
> > lib/distributor/rte_distributor_single.c | 10 +-
> > lib/eal/arm/include/rte_pause_64.h | 271 ++++++++++++++++----
> > lib/eal/include/generic/rte_mcslock.h | 9 +-
> > lib/eal/include/generic/rte_pause.h | 309 +++++++++++++++++++++++
> > lib/eal/include/generic/rte_pflock.h | 5 +-
> > 6 files changed, 543 insertions(+), 72 deletions(-)
> >
>
> Since these are all inline, would it be possible to make this a macro and have
> the caller pass a condition function?
>
> Look at Linux wait_event() for an example of that.
More information about the dev
mailing list