DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Running 32bit secondary with 64bit primary DPDK process
@ 2014-12-06  7:58 Vijayakumar Muthuvel Manickam
  2014-12-06 13:48 ` Neil Horman
  0 siblings, 1 reply; 2+ messages in thread
From: Vijayakumar Muthuvel Manickam @ 2014-12-06  7:58 UTC (permalink / raw)
  To: dev

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

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

* Re: [dpdk-dev] Running 32bit secondary with 64bit primary DPDK process
  2014-12-06  7:58 [dpdk-dev] Running 32bit secondary with 64bit primary DPDK process Vijayakumar Muthuvel Manickam
@ 2014-12-06 13:48 ` Neil Horman
  0 siblings, 0 replies; 2+ messages in thread
From: Neil Horman @ 2014-12-06 13:48 UTC (permalink / raw)
  To: Vijayakumar Muthuvel Manickam; +Cc: dev

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

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

end of thread, other threads:[~2014-12-06 13:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-06  7:58 [dpdk-dev] Running 32bit secondary with 64bit primary DPDK process Vijayakumar Muthuvel Manickam
2014-12-06 13:48 ` Neil Horman

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