[dpdk-dev] Running 32bit secondary with 64bit primary DPDK process

Neil Horman nhorman at tuxdriver.com
Sat Dec 6 14:48:01 CET 2014


On Fri, Dec 05, 2014 at 11:58:10PM -0800, Vijayakumar Muthuvel Manickam wrote:
> Hi,
> 
> I have a patch that enables 32bit secondary DPDK processes to attach with
> 64bit primary DPDK process and share the mempool and ring datastructures. I
> developed this patch to enable our product(from Brocade) which uses a 32bit
> userspace network stack to be able to work with PMDs like ivshmem and some
> proprietary PMDs that are available only for 64bit version of the primary
> process.
> 
> To achieve this,
> 1) I changed the mmap() of hugepages in primary process to use MAP_32BIT
> flag so that all hugepages are mapped within the 4GB virtual address limit
> and
> 2) Added a dummy pad_pointer member variable next to each pointer member
> within the shared datastructures like struct rte_ring, struct
> rte_mempool, struct rte_pktmbuf, TAILQ_HEAD, struct hugepage_file that both
> primary and secondary share.
> 
> I have been able to successfully run a 64bit primary process with multiple
> 32bit secondary processes doing packet processing with the pipeline model.
> 
> I would like to know if this compatibility support is of interest to the
> community and if so I can submit my patch.
> 
> Thanks,
> Vijay
> 

It never hurts to post something.
Neil



More information about the dev mailing list