How about replacing this part of rte_timer_subsystem_init(): 

        mz = rte_memzone_lookup(mz_name);
        if (mz == NULL) {
                mz = rte_memzone_reserve_aligned(mz_name, mem_size,
                                SOCKET_ID_ANY, 0, RTE_CACHE_LINE_SIZE);
                if (mz == NULL) {
                        rte_mcfg_timer_unlock();
                        return -ENOMEM;
                }
                do_full_init = true;
        } else
                do_full_init = false;

with either a call to clib_mem_alloc_aligned() or clib_pmalloc_alloc_aligned() 
depending on mem_size? There appears to be one
call to rte_memzone_free() which would also need an adjustment.

FWIW... Dave

-----Original Message-----
From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Prashant Upadhyaya
Sent: Monday, March 27, 2023 1:07 AM
To: vpp-dev <vpp-dev@lists.fd.io>
Subject: [vpp-dev] Regarding DPDK's rte_timer api's usage with VPP

Hi,

I am bringing in some legacy code which worked with DPDK standalone, and 
converting it into a VPP plugin (VPP 22.10) The legacy code uses the DPDK 
rte_timer api's Now as soon as my VPP plugin calls the DPDK API 
rte_timer_subsystem_init, I get the following error from EAL of DPDK

EAL: memzone_reserve_aligned_thread_unsafe(): Number of requested memzone 
segments exceeds RTE_MAX_MEMZONE

Of course I can uproot the entire timer implementation in legacy code and 
replace it with various other alternatives, but if I can get over the issue I 
have reported above somehow that would be great.

If anybody has resolved a similar issue, please do advise.

Regards
-Prashant

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#22771): https://lists.fd.io/g/vpp-dev/message/22771
Mute This Topic: https://lists.fd.io/mt/97876096/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to