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

