From: "Xie, Huawei" <huawei.xie@intel.com>
To: "Murthy, Krishna J" <krishna.j.murthy@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [README]:Running DPDK in a LXC-based Container
Date: Fri, 10 Oct 2014 00:26:55 +0000 [thread overview]
Message-ID: <C37D651A908B024F974696C65296B57B0F2B7FFE@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <910C5016C9E77747B5B12EF34B54ADA92A3FA2CE@IRSMSX108.ger.corp.intel.com>
Here is the docker step, it is quite straightforward. Basically they are the same as LXC.
UIO:
docker run -i -t --device=/dev/uio0:/dev/uio0 --device=/dev/uio1:/dev/uio1 -v /mnt:/mnt fedora20-dpdk-2 /bin/bash
VFIO:
docker run -i -t --privileged --device=/dev/vfio/vfio:/dev/vfio/vfio --device=/dev/vfio/22:/dev/vfio/22 -v /mnt:/mnt -v /var/run:/var/run fedora20-dpdk-2 /bin/bash
There are open/ioctl calls on vfio device files, and I haven't figured out exactly the capability we need to give to docker for each sys call, otherwise we could remove --privilege option.
MP process:
With /var/run or /var/run/.rte_* mounted to docker, we could run multiple process between dockers.
(We could generate the dpdk cfg files in /var/run/dpdk, then we could mount whole directories to docker without specify each file).
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Murthy, Krishna J
> Sent: Wednesday, October 08, 2014 6:44 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [README]:Running DPDK in a LXC-based Container
>
> Running DPDK in a LXC-based Container
> =================================================================
> ===============
> Author: Krishnamurthy Jambur
>
> Note: This README assumes you have the a LXC based container running on
> the IA platform. This was tested on Windriver OVP Linux 6.0
>
> In this README we are will go through some of the unique steps involved
> in attaching a NIC to the LXC-based Container and the running a sample
> DPDP application in the container.
>
> 1. Attaching NIC device to the container
> ----------------------------------------
> Let's assume for this example that you would like to have a management
> interface
> and then separate dedicated 10G NIC to run DPDK. With this requirement your
> LXC
> config file should have one networking sections one for veth. For the 10G NIC
> we
> need to use uio device file system
>
> veth uses a paired set of network interfaces, one inside the container specified
> by the option lxc.network.name, and one in the host specified by the option
> lxc.network.pair. The latter is attached automatically to a bridge in the host
> if the name of the bridge is specified by the option lxc.network.link.
>
> # networking-veth
> lxc.network.type = veth
> lxc.network.link = virbr0
> lxc.network.veth.pair = vc0
> lxc.network.name = eth0
> lxc.network.hwaddr = ac:de:48:34:01:01
> lxc.network.flags = up
> lxc.network.ipv4 = 192.168.122.12/24
> lxc.network.ipv4.gateway = 192.168.122.1
>
> once you have this your LXC container will have an IP using bridge. Next step
> is to install DPDK igb_uio on the host and then bind it to the the 10G Niantic
> NIC ports as usual. Once installed do ls -l /dev/uio* on the host. These are the
> uioX interface corresponding to the the NIC ports to which DPDK igb_uio is
> binded. DPDK application will use these device files. In order to provide access
> to these device files inside the LXC container not down the major number [e.g.
> in this case 249] and add this config to the LXC config file
>
> lxc.cgroup.devices.allow = c 249:* rwm
>
> once you start the container then you need to create these uio0, uio1,...
> devices nodes inside the container file system using mknod command as usual
> with the same major and minor numbers.
>
> mknod /dev/uio3 c 249 0
> mknod /dev/uio3 c 249 3
> mknod /dev/uio2 c 249 2
> mknod /dev/uio1 c 249 1
>
> 2. Host allocated Huge page access inside container
> ----------------------------------------------------
> For this set it is assumes that you would have pre-allocated hugepages and
> mounted on the on the host. Once you have this set-up then you need to provide
> access to hugetlbfs file system to the container using the LXC config file.
>
> lxc.mount.entry = /mnt/huge mnt/huge none bind,create=dir 0 0
>
> once you have this DPDK application will be able to use the host mounted huge
> pages in the container.
>
> Next step is run the DPDK application as usual in the LXC Container
>
> Regards,
> Krishna
>
> --------------------------------------------------------------
> Intel Shannon Limited
> Registered in Ireland
> Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
> Registered Number: 308263
> Business address: Dromore House, East Park, Shannon, Co. Clare
>
> This e-mail and any attachments may contain confidential material for the sole
> use of the intended recipient(s). Any review or distribution by others is strictly
> prohibited. If you are not the intended recipient, please contact the sender and
> delete all copies.
>
next prev parent reply other threads:[~2014-10-10 0:19 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-08 13:44 Murthy, Krishna J
2014-10-10 0:26 ` Xie, Huawei [this message]
2015-06-17 6:01 Mohit Saxena
2016-02-11 5:01 Pushpasis Sarkar
2016-02-11 12:04 ` Alejandro Lucero
[not found] ` <1455193461352.1476199754@boxbe>
2016-02-11 12:56 ` Pushpasis Sarkar
2016-02-11 13:08 ` Bruce Richardson
[not found] ` <1455197317303.1476199754@boxbe>
2016-02-11 16:19 ` Pushpasis Sarkar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=C37D651A908B024F974696C65296B57B0F2B7FFE@SHSMSX101.ccr.corp.intel.com \
--to=huawei.xie@intel.com \
--cc=dev@dpdk.org \
--cc=krishna.j.murthy@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).