From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Horman Subject: Re: Running 32bit secondary with 64bit primary DPDK process Date: Sat, 6 Dec 2014 08:48:01 -0500 Message-ID: <20141206134801.GA13596@localhost.localdomain> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "dev-VfR2kkLFssw@public.gmane.org" To: Vijayakumar Muthuvel Manickam Return-path: Content-Disposition: inline In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "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