From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <mmvijay@gmail.com>
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 <dev@dpdk.org>; Sat,  6 Dec 2014 08:58:11 +0100 (CET)
Received: by mail-qg0-f42.google.com with SMTP id z107so1566818qgd.15
 for <dev@dpdk.org>; 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: <CADJ2ZGPJxNXxd3HxTWgJqywfv9xxx+kaXjNxcePy5PiCwE+S9w@mail.gmail.com>
From: Vijayakumar Muthuvel Manickam <mmvijay@gmail.com>
To: "dev@dpdk.org" <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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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