From: Yunsheng Lin <linyunsheng@huawei.com>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Alexander Lobakin <aleksander.lobakin@intel.com>,
Yunsheng Lin <yunshenglin0825@gmail.com>, <davem@davemloft.net>,
<pabeni@redhat.com>, <netdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Alexander Duyck <alexander.duyck@gmail.com>,
Liang Chen <liangchen.linux@gmail.com>,
Saeed Mahameed <saeedm@nvidia.com>,
Leon Romanovsky <leon@kernel.org>,
Eric Dumazet <edumazet@google.com>,
Jesper Dangaard Brouer <hawk@kernel.org>,
Ilias Apalodimas <ilias.apalodimas@linaro.org>,
<linux-rdma@vger.kernel.org>
Subject: Re: [PATCH v5 RFC 1/6] page_pool: frag API support for 32-bit arch with 64-bit DMA
Date: Fri, 14 Jul 2023 20:16:34 +0800 [thread overview]
Message-ID: <9a5b4c50-2401-b3e7-79aa-33d3ccee41c5@huawei.com> (raw)
In-Reply-To: <20230712102603.5038980e@kernel.org>
On 2023/7/13 1:26, Jakub Kicinski wrote:
> On Wed, 12 Jul 2023 20:34:12 +0800 Yunsheng Lin wrote:
>>>> C sources can include $path/page_pool.h, headers should generally only
>>>> include $path/page_pool/types.h.
>>
>> Does spliting the page_pool.h as above fix the problem about including
>> a ton of static inline functions from "linux/dma-mapping.h" in skbuff.c?
>>
>> As the $path/page_pool/helpers.h which uses dma_get_cache_alignment()
>> must include the "linux/dma-mapping.h" which has dma_get_cache_alignment()
>> defining as a static inline function.
>> and if skbuff.c include $path/page_pool.h or $path/page_pool/helpers.h,
>> doesn't we still have the same problem? Or do I misunderstand something
>> here?
>
> I should have clarified that "types.h" should also include pure
> function declarations (and possibly static line wrappers like
> pure get/set functions which only need locally defined types).
So "types.h" is not supposed/allowed to include any header and
it can include any function declarations and static line wrappers
which do not depend on any other header? It means we need to forward
declaring a lot of 'struct' type for function declarations, right?
If it is the case, the "types.h" does not seems to match it's
naming when we can not really define most of the 'struct' in "types.h",
such as 'struct page_pool' need to include some header in order to
have definition of 'struct delayed_work'.
Similar issue for 'helpers.h', as it will include most of the
definition of 'struct', which are not really helpers, right?
>
> The skbuff.h only needs to include $path/page_pool/types.h, right?
It seems doable, it need trying to prove it is indeed that case.
>
> I know that Olek has a plan to remove the skbuff dependency completely
> but functionally / for any future dependencies - this should work?
I am not experienced and confident enough to say about this for now.
next prev parent reply other threads:[~2023-07-14 12:16 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-29 12:02 [PATCH v5 RFC 0/6] introduce page_pool_alloc() API Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 1/6] page_pool: frag API support for 32-bit arch with 64-bit DMA Yunsheng Lin
2023-07-07 23:59 ` Jakub Kicinski
2023-07-09 12:39 ` Yunsheng Lin
2023-07-10 18:36 ` Jakub Kicinski
2023-07-08 0:01 ` Jakub Kicinski
2023-07-09 12:54 ` Yunsheng Lin
2023-07-10 18:38 ` Jakub Kicinski
2023-07-11 10:59 ` Alexander Lobakin
2023-07-11 16:37 ` Jakub Kicinski
2023-07-11 16:59 ` Alexander Lobakin
2023-07-11 20:09 ` Jakub Kicinski
2023-07-12 12:34 ` Yunsheng Lin
2023-07-12 17:26 ` Jakub Kicinski
2023-07-14 12:16 ` Yunsheng Lin [this message]
2023-07-14 13:44 ` Jesper Dangaard Brouer
2023-07-14 17:52 ` Jakub Kicinski
2023-07-17 12:33 ` Yunsheng Lin
2023-07-18 18:16 ` Jakub Kicinski
2023-07-18 18:28 ` Alexander Lobakin
2023-07-19 12:21 ` Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 2/6] page_pool: unify frag_count handling in page_pool_is_last_frag() Yunsheng Lin
2023-07-10 14:39 ` Alexander Lobakin
2023-07-11 11:47 ` Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 3/6] page_pool: introduce page_pool[_cache]_alloc() API Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 4/6] page_pool: remove PP_FLAG_PAGE_FRAG flag Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 5/6] page_pool: update document about frag API Yunsheng Lin
2023-06-29 20:30 ` Randy Dunlap
2023-06-29 12:02 ` [PATCH v5 RFC 6/6] net: veth: use newly added page pool API for veth with xdp Yunsheng Lin
2023-06-29 14:26 ` [PATCH v5 RFC 0/6] introduce page_pool_alloc() API Alexander Lobakin
2023-06-30 11:57 ` Yunsheng Lin
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=9a5b4c50-2401-b3e7-79aa-33d3ccee41c5@huawei.com \
--to=linyunsheng@huawei.com \
--cc=aleksander.lobakin@intel.com \
--cc=alexander.duyck@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=ilias.apalodimas@linaro.org \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=liangchen.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=saeedm@nvidia.com \
--cc=yunshenglin0825@gmail.com \
/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
all inboxes | Powered by JetHome®