From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qg0-f42.google.com (mail-qg0-f42.google.com [209.85.192.42]) by dpdk.org (Postfix) with ESMTP id 5549E2E8A for ; Sat, 6 Dec 2014 08:58:11 +0100 (CET) Received: by mail-qg0-f42.google.com with SMTP id z107so1566818qgd.15 for ; Fri, 05 Dec 2014 23:58:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=sNXg3a9Xn8TbBn8oMDl4Yxwd9cOTY/d7exK0tKM1044=; b=bsKxbSN9Dv3M/pg/UEpaEFNhVFQcW7UyIaZH3trmlsSNI6joI5IrkxnRdMlT6SN8xt G8gPROMGHX6iUH8Y6EEjcXQVoIxA1txhwJGjZ+Mbv1xBwNNvpQkkvLm6MQicza2ze0tV nTbXwV8Jogani7PJEzGkg/p7v8EJfMH3yrBccWevk+LhOP7tFC29WIHUAevlk1Tfd1gj 7PkNWUY/a/3wv2msC1lcfuunoYouTF/vLvgm0sVDkx9huY8LO6QsTrNoTNlq5j39Dzrp wkpQPf1ZLMxZvqxO7Tld9qwKvm/NyEhigu/FD9UQxucGibtrR1ROoHPRGev6X5SLccf8 s3ww== MIME-Version: 1.0 X-Received: by 10.140.91.246 with SMTP id z109mr31800475qgd.57.1417852690469; Fri, 05 Dec 2014 23:58:10 -0800 (PST) Received: by 10.96.179.198 with HTTP; Fri, 5 Dec 2014 23:58:10 -0800 (PST) Date: Fri, 5 Dec 2014 23:58:10 -0800 Message-ID: From: Vijayakumar Muthuvel Manickam To: "dev@dpdk.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] Running 32bit secondary with 64bit primary DPDK process X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Dec 2014 07:58:11 -0000 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