From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
To: David Marchand <david.marchand@redhat.com>,
Thomas Monjalon <thomas@monjalon.net>
Cc: Olivier Matz <olivier.matz@6wind.com>,
Dmitry Kozlyuk <dkozlyuk@nvidia.com>,
Ray Kinsella <mdr@ashroe.eu>,
Stephen Hemminger <stephen@networkplumber.org>,
dev <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH] mempool: accept user flags only
Date: Mon, 18 Oct 2021 17:51:48 +0300 [thread overview]
Message-ID: <da7b200b-7dc6-fe8b-b480-b7c5babd424a@oktetlabs.ru> (raw)
In-Reply-To: <CAJFAV8yb=2CDwjXm791pL=jDp4RL8tBu2Cv+LVZfhGKbxhx2_A@mail.gmail.com>
On 10/18/21 3:06 PM, David Marchand wrote:
> On Mon, Oct 18, 2021 at 11:05 AM Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru> wrote:
>>>>> +/**
>>>>> + * This macro lists all the mempool flags an application may request.
>>>>> + */
>>>>> +#define MEMPOOL_VALID_USER_FLAGS (MEMPOOL_F_NO_SPREAD \
>>>>
>>>> I think RTE_ prefix is missing here since it is in a public
>>>> header now.
>>>
>>> I discussed about this offline with David. I was ok to omit the
>>> RTE_ prefix for consistency.
>>>
>>>>> + | MEMPOOL_F_NO_CACHE_ALIGN \
>>>>> + | MEMPOOL_F_SP_PUT \
>>>>> + | MEMPOOL_F_SC_GET \
>>>>> + | MEMPOOL_F_NO_IOVA_CONTIG \
>>>>> + )
>>>>> /**
>>>>> * @internal When debug is enabled, store some statistics.
>>>>> *
>>>>>
>>>>
>>>> Should we make a patch to add defines with RTE_ prefix and
>>>> add a deprecation for old flags without RTE_ prefix?
>>>>
>>>> Olivier, what do you think? If you have time to care about it,
>>>> it would be great. (I'm unfamiliar with coccinelle yet).
>>>
>>> I was joking with David about keeping some work for 2022 :)
>>>
>>> I will try to have a look. As a side note, I was not that convinced by
>>> coccinelle for simple replacements like this, because it does not
>>> update the comments or documentation, it can (rarely) break the
>>> indentation, it is slow, and the syntax is quite complex.
>>>
>>
>> I dreamed to finish with renanamings in core libraries in 2021.
>
> Sadly, you are not the only one.
>
>
>> May be it is to naive :(
>>
>> I see that rc1 is already delayed and adding a couple of
>> more patches could delay it even more. I'm ready to do it
>> without coccinelle today, so, it is a question to @Thomas and
>> @David if that late patch will be considered at all.
>
> Thomas?
>
> As usual, we must avoid unannounced API changes unless waived by Techboard.
> I am not against it if we keep compatilibity (marking RTE_DEPRECATED
> can wait next releases), and seeing how it only impacts a relatively
> low number of places in DPDK.
>
> Risks are mainly on compilation side, and conflicts with other patches
> in mempool for rc1, but I can only think of Dmitry series and the
> conflict is easy to solve.
>
> It should be quick to do: when could you send such a patch?
Done.
>
>
> What I have seen:
>
> $ git grep -iE "(define|inline).*\<(|__)mempool" -- lib/mempool/*.h
> lib/mempool/rte_mempool.h:#define MEMPOOL_PG_SHIFT_MAX
> (sizeof(uintptr_t) * CHAR_BIT - 1)
> lib/mempool/rte_mempool.h:#define MEMPOOL_PG_NUM_DEFAULT 1
> ^^^
> bit-rot, both can be dropped.
>
> lib/mempool/rte_mempool.h:#define MEMPOOL_F_NO_SPREAD 0x0001
> lib/mempool/rte_mempool.h:#define MEMPOOL_F_NO_CACHE_ALIGN 0x0002 /**<
> Do not align objs on cache lines.*/
> lib/mempool/rte_mempool.h:#define MEMPOOL_F_SP_PUT 0x0004 /**<
> Default put is "single-producer".*/
> lib/mempool/rte_mempool.h:#define MEMPOOL_F_SC_GET 0x0008 /**<
> Default get is "single-consumer".*/
> lib/mempool/rte_mempool.h:#define MEMPOOL_F_POOL_CREATED 0x0010 /**<
> Internal: pool is created. */
> lib/mempool/rte_mempool.h:#define MEMPOOL_F_NO_IOVA_CONTIG 0x0020 /**<
> Don't need IOVA contiguous objs. */
> lib/mempool/rte_mempool.h:#define MEMPOOL_VALID_USER_FLAGS
> (MEMPOOL_F_NO_SPREAD \
>
> lib/mempool/rte_mempool.h:#define __MEMPOOL_STAT_ADD(mp, name, n) do {
> \
> lib/mempool/rte_mempool.h:#define __MEMPOOL_STAT_ADD(mp, name, n) do {} while(0)
> lib/mempool/rte_mempool.h:#define MEMPOOL_HEADER_SIZE(mp, cs) \
> lib/mempool/rte_mempool.h:static inline struct rte_mempool_objhdr
> *__mempool_get_header(void *obj)
> lib/mempool/rte_mempool.h:static inline struct rte_mempool_objtlr
> *__mempool_get_trailer(void *obj)
> lib/mempool/rte_mempool.h:#define __mempool_check_cookies(mp,
> obj_table_const, n, free) \
> lib/mempool/rte_mempool.h:#define __mempool_check_cookies(mp,
> obj_table_const, n, free) do {} while(0)
> lib/mempool/rte_mempool.h:#define
> __mempool_contig_blocks_check_cookies(mp, first_obj_table_const, n, \
> lib/mempool/rte_mempool.h:#define
> __mempool_contig_blocks_check_cookies(mp, first_obj_table_const, n, \
> ^^
> Internal stuff, but I would prefix in any case.
>
> lib/mempool/rte_mempool.h:#define MEMPOOL_REGISTER_OPS(ops)
> \
Many thanks for the grep. I'd lost something without it.
next prev parent reply other threads:[~2021-10-18 14:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-18 8:26 David Marchand
2021-10-18 8:35 ` Olivier Matz
2021-10-20 7:53 ` David Marchand
2021-10-18 8:37 ` Andrew Rybchenko
2021-10-18 8:58 ` Olivier Matz
2021-10-18 9:05 ` Andrew Rybchenko
2021-10-18 12:06 ` David Marchand
2021-10-18 14:51 ` Andrew Rybchenko [this message]
2021-10-19 13:42 ` David Marchand
2021-10-19 18:17 ` Andrew Rybchenko
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=da7b200b-7dc6-fe8b-b480-b7c5babd424a@oktetlabs.ru \
--to=andrew.rybchenko@oktetlabs.ru \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=dkozlyuk@nvidia.com \
--cc=mdr@ashroe.eu \
--cc=olivier.matz@6wind.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
/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;
as well as URLs for NNTP newsgroup(s).