DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] rte_pktmbuf_pool_create returns EINVAL
@ 2020-12-08  7:29 Kamaraj P
  2020-12-10 18:17 ` Kamaraj P
  0 siblings, 1 reply; 3+ messages in thread
From: Kamaraj P @ 2020-12-08  7:29 UTC (permalink / raw)
  To: dev; +Cc: Nageswara Rao Penumarthy

Hello All,

We are using DDPDK 19.11 and when we call *rte_pktmbuf_pool_create() *API
allocate memory,
we could see the EINVAL ( EINVAL - cache size provided is too large, or
priv_size is not aligned ) return from that above API.
We are seeing the issue only when we pass the Priv_size value of 64 bytes
which is aligned to RTE_MBUF_PRIV_ALIGN(8 bytes).

Here is our snippet of our code base:
#define MBUF_CACHE_SIZE   *512 *
#define MBUF_PRIV_SIZE        *64*
#define FRAME_LEN             *9216*
#define NO_OF_MBUF
*52736 *

/*define in rte_config.h */
#define RTE_PKTMBUF_HEADROOM 128

pool = rte_pktmbuf_pool_create(name, num_mbufs,
                                   MBUF_CACHE_SIZE, MBUF_PRIV_SIZE,
                                   frame_len + RTE_PKTMBUF_HEADROOM,
                                   rte_socket_id());

The above check was failed with EINVAL

Could you please suggest if there is any known issue or limitation w.r.t
19.11

Thanks,
Kamaraj

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] rte_pktmbuf_pool_create returns EINVAL
  2020-12-08  7:29 [dpdk-dev] rte_pktmbuf_pool_create returns EINVAL Kamaraj P
@ 2020-12-10 18:17 ` Kamaraj P
  2020-12-11 18:21   ` Kamaraj P
  0 siblings, 1 reply; 3+ messages in thread
From: Kamaraj P @ 2020-12-10 18:17 UTC (permalink / raw)
  To: dev; +Cc: Nageswara Rao Penumarthy

Hello All,

We could observe the issue with rte_mempool_populate_default() API.
Does this lead to fetching contiguous memorywhen allocating it ?
BTW we are using the "legacy mem" option to initialize it.

Please share if you have more info on this issue.


On Tue, Dec 8, 2020 at 12:59 PM Kamaraj P <pkamaraj@gmail.com> wrote:

> Hello All,
>
> We are using DDPDK 19.11 and when we call *rte_pktmbuf_pool_create() *API
> allocate memory,
> we could see the EINVAL ( EINVAL - cache size provided is too large, or
> priv_size is not aligned ) return from that above API.
> We are seeing the issue only when we pass the Priv_size value of 64 bytes
> which is aligned to RTE_MBUF_PRIV_ALIGN(8 bytes).
>
> Here is our snippet of our code base:
> #define MBUF_CACHE_SIZE   *512 *
> #define MBUF_PRIV_SIZE        *64*
> #define FRAME_LEN             *9216*
> #define NO_OF_MBUF
> *52736 *
>
> /*define in rte_config.h */
> #define RTE_PKTMBUF_HEADROOM 128
>
> pool = rte_pktmbuf_pool_create(name, num_mbufs,
>                                    MBUF_CACHE_SIZE, MBUF_PRIV_SIZE,
>                                    frame_len + RTE_PKTMBUF_HEADROOM,
>                                    rte_socket_id());
>
> The above check was failed with EINVAL
>
> Could you please suggest if there is any known issue or limitation w.r.t
> 19.11
>
> Thanks,
> Kamaraj
>
>
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] rte_pktmbuf_pool_create returns EINVAL
  2020-12-10 18:17 ` Kamaraj P
@ 2020-12-11 18:21   ` Kamaraj P
  0 siblings, 0 replies; 3+ messages in thread
From: Kamaraj P @ 2020-12-11 18:21 UTC (permalink / raw)
  To: dev; +Cc: Nageswara Rao Penumarthy

Hello All,

Looks like the implementation of rte_mempool_populate_default()API changed
from dpdk 18.13 to 19.11 version.
This to get contiguous memory from the page.  Please see the difference in
this API.
*from dpdk 18.13:*
" If we fail to get enough contiguous memory, then we'll go and

*from dpdk 19.11*
* reserve space in smaller chunks.

Here is the palace where we see the failure ?
rte_mempool_populate_default() {
......
.......
if (pg_sz == 0 || (mz_flags & RTE_MEMZONE_IOVA_CONTIG))
ret = rte_mempool_populate_iova(mp, mz->addr,
iova, mz->len,
rte_mempool_memchunk_mz_free,
(void *)(uintptr_t)mz);
else
ret = rte_mempool_populate_virt(mp, mz->addr,
mz->len, pg_sz,
rte_mempool_memchunk_mz_free,
(void *)(uintptr_t)mz);
if (ret < 0) {
r
*te_memzone_free(mz);                        RTE_LOG(ERR, MEMPOOL, "zero
%d\n",   ret); ==> fails here*
goto fail;
}

.....
....
}
Is there anything that needs to be added from our application to get
contiguous memory ?
BTW we are using the "-legacy-mem" option.

Please suggest if there is any change required w..r.t dpdk 19.11 for the
mbuf pool creation ?

Thanks,
Kamaraj



On Thu, Dec 10, 2020 at 11:47 PM Kamaraj P <pkamaraj@gmail.com> wrote:

> Hello All,
>
> We could observe the issue with rte_mempool_populate_default() API.
> Does this lead to fetching contiguous memorywhen allocating it ?
> BTW we are using the "legacy mem" option to initialize it.
>
> Please share if you have more info on this issue.
>
>
> On Tue, Dec 8, 2020 at 12:59 PM Kamaraj P <pkamaraj@gmail.com> wrote:
>
>> Hello All,
>>
>> We are using DDPDK 19.11 and when we call *rte_pktmbuf_pool_create() *API
>> allocate memory,
>> we could see the EINVAL ( EINVAL - cache size provided is too large, or
>> priv_size is not aligned ) return from that above API.
>> We are seeing the issue only when we pass the Priv_size value of 64
>> bytes which is aligned to RTE_MBUF_PRIV_ALIGN(8 bytes).
>>
>> Here is our snippet of our code base:
>> #define MBUF_CACHE_SIZE   *512 *
>> #define MBUF_PRIV_SIZE        *64*
>> #define FRAME_LEN             *9216*
>> #define NO_OF_MBUF
>> *52736 *
>>
>> /*define in rte_config.h */
>> #define RTE_PKTMBUF_HEADROOM 128
>>
>> pool = rte_pktmbuf_pool_create(name, num_mbufs,
>>                                    MBUF_CACHE_SIZE, MBUF_PRIV_SIZE,
>>                                    frame_len + RTE_PKTMBUF_HEADROOM,
>>                                    rte_socket_id());
>>
>> The above check was failed with EINVAL
>>
>> Could you please suggest if there is any known issue or limitation w.r.t
>> 19.11
>>
>> Thanks,
>> Kamaraj
>>
>>
>>
>>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-12-11 18:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-08  7:29 [dpdk-dev] rte_pktmbuf_pool_create returns EINVAL Kamaraj P
2020-12-10 18:17 ` Kamaraj P
2020-12-11 18:21   ` Kamaraj P

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).