On 12-Jul-19 12:37 PM, Jerin Jacob Kollanukkaran wrote:
-----Original Message-----
From: Burakov, Anatoly <anatoly.bura...@intel.com>
Sent: Friday, July 12, 2019 4:19 PM
To: Jerin Jacob Kollanukkaran <jer...@marvell.com>; Ferruh Yigit
<ferruh.yi...@intel.com>; Vamsi Krishna Attunuru
<vattun...@marvell.com>; dev@dpdk.org
Cc: olivier.m...@6wind.com; arybche...@solarflare.com
Subject: [EXT] Re: [dpdk-dev] [PATCH v6 0/4] add IOVA = VA support in KNI
On 12-Jul-19 11:26 AM, Jerin Jacob Kollanukkaran wrote:
What do you think?

IMO, If possible we can avoid extra indirection of new config. In
worst case We can add it. How about following to not have new config

1) Make MEMPOOL_F_NO_PAGE_BOUND  as default
http://patches.dpdk.org/patch/55277/
There is absolutely zero overhead of this flag considering the huge
page size are minimum 2MB. Typically 512MB or 1GB.
Any one has any objection?

Pretty much zero overhead in hugepage case, not so in non-hugepage
case.
It's rare, but since we support it, we have to account for it.

That is a fair concern.
How about enable the flag in mempool ONLY when
rte_eal_has_hugepages()
In the common layer?

Perhaps it's better to check page size of the underlying memory, because 4K
pages are not necessarily no-huge mode - they could also be external
memory. That's going to be a bit hard because there may not be a way to
know which memory we're allocating from in advance, aside from simple
checks like `(rte_eal_has_hugepages() ||
rte_malloc_heap_socket_is_external(socket_id))` - but maybe those would
be sufficient.

Yes.




(also, i don't really like the name NO_PAGE_BOUND since in memzone
API there's a "bounded memzone" allocation API, and this flag's name
reads like objects would not be bounded by page size, not that they
won't cross page
boundary)

No strong opinion for the name. What name you suggest?

How about something like MEMPOOL_F_NO_PAGE_SPLIT?

Looks good to me.

In summary, Change wrt existing patch"
- Change NO_PAGE_BOUND to MEMPOOL_F_NO_PAGE_SPLIT
- Set this flag in  rte_pktmbuf_pool_create() when rte_eal_has_hugepages() ||
  rte_malloc_heap_socket_is_external(socket_id))

If we are to have a special KNI allocation API, would we even need that?


Olivier, Any objection?
Ref: http://patches.dpdk.org/patch/55277/




--
Thanks,
Anatoly

Reply via email to