From: "Liu, Yong" <yong.liu@intel.com>
To: Ravi Kerur <rkerur@gmail.com>, "dts@dpdk.org" <dts@dpdk.org>
Subject: Re: [dts] [PATCH] Support for I217 and I218 Intel EC.
Date: Fri, 23 Jan 2015 09:58:10 +0000 [thread overview]
Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E10D52E6B@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <1421944856-4590-2-git-send-email-rkerur@gmail.com>
Applied. Thanks Ravi.
> -----Original Message-----
> From: Ravi Kerur [mailto:rkerur@gmail.com]
> Sent: Friday, January 23, 2015 12:41 AM
> To: dts@dpdk.org
> Cc: Liu, Yong; Qiu, Michael; Ravi Kerur
> Subject: [PATCH] Support for I217 and I218 Intel EC.
>
> Changes include
> Added PCI-ID of I217V, I217LM, I218V and I218LM into
> appropriate files.
> Check driver is bound before binding, it reduces error
> messges in dts.log
> Check driver is inserted before removing, it reduces
> error messages in dts.log
> Add more delay after link up operation, since I217 and
> I218 takes more time than the tested NICs.
>
> Signed-off-by: Ravi Kerur <rkerur@gmail.com>
> ---
> framework/crb.py | 24 ++++++++++++++++++------
> framework/dut.py | 5 ++++-
> framework/project_dpdk.py | 4 +++-
> framework/settings.py | 10 +++++++++-
> tests/TestSuite_ip_pipeline.py | 6 +++++-
> tests/TestSuite_pmd.py | 8 ++++++--
> 6 files changed, 45 insertions(+), 12 deletions(-)
>
> diff --git a/framework/crb.py b/framework/crb.py
> index aca62c1..d41f51b 100644
> --- a/framework/crb.py
> +++ b/framework/crb.py
> @@ -142,7 +142,9 @@ class Crb(object):
> self.send_expect("rmmod vfio_pci", "# ", 10)
> self.send_expect("rmmod vfio", "# ", 10)
> else:
> - self.send_expect("rmmod igb_uio", "# ", 10)
> + out = self.send_expect("lsmod | grep igb_uio", "#")
> + if "igb_uio" in out:
> + self.send_expect("rmmod -f igb_uio", "# ", 10)
> self.send_expect("modprobe igb", "# ", 20)
> self.send_expect("modprobe ixgbe", "# ", 20)
> self.send_expect("modprobe e1000e", "# ", 20)
> @@ -151,14 +153,24 @@ class Crb(object):
>
> try:
> for (pci_bus, pci_id) in self.pci_devices_info:
> + """
> + Check if driver is already bound before binding it.
> + """
> if pci_id in ('8086:10fb', '8086:151c', '8086:1528',
> '8086:1512', '8086:154a'):
> - self.send_expect("echo 0000:%s >
> /sys/bus/pci/drivers/ixgbe/bind" % pci_bus, "# ")
> + if not
> os.path.exists("/sys/bus/pci/drivers/ixgbe/"+"0000:"+pci_bus):
> + self.send_expect("echo -n 0000:%s >
> /sys/bus/pci/drivers/ixgbe/bind" % pci_bus, "# ")
> elif pci_id in ('8086:10e8', '8086:150e', '8086:1521',
> '8086:10c9', '8086:1526', '8086:1533'):
> - self.send_expect("echo 0000:%s >
> /sys/bus/pci/drivers/igb/bind" % pci_bus, "# ")
> + if not
> os.path.exists("/sys/bus/pci/drivers/igb/"+"0000:"+pci_bus):
> + self.send_expect("echo -n 0000:%s >
> /sys/bus/pci/drivers/igb/bind" % pci_bus, "# ")
> elif pci_id in('8086:10d3', '8086:10b9'):
> - self.send_expect("echo 0000:%s >
> /sys/bus/pci/drivers/e1000e/bind" % pci_bus, "# ")
> + if not
> os.path.exists("/sys/bus/pci/drivers/e1000e/"+"0000:"+pci_bus):
> + self.send_expect("echo -n 0000:%s >
> /sys/bus/pci/drivers/e1000e/bind" % pci_bus, "# ")
> + elif pci_id in ('8086:153a', '8086:153b', '8086:155a',
> '8086:1559'):
> + if not
> os.path.exists("/sys/bus/pci/drivers/e1000e/"+"0000:"+pci_bus):
> + self.send_expect("echo -n 0000:%s >
> /sys/bus/pci/drivers/e1000e/bind" % pci_bus, "# ")
> elif pci_id in ('8086:100f', '8086:100e'):
> - self.send_expect("echo 0000:%s >
> /sys/bus/pci/drivers/e1000/bind" % pci_bus, "# ")
> + if not
> os.path.exists("/sys/bus/pci/drivers/e1000/"+"0000:"+pci_bus):
> + self.send_expect("echo -n 0000:%s >
> /sys/bus/pci/drivers/e1000/bind" % pci_bus, "# ")
> elif pci_id in ('1af4:1000'):
> self.send_expect("echo 0000%s >
> /sys/bus/pci/drivers/virtio-pci/bind" % pci_bus, "# ")
> else:
> @@ -226,7 +238,7 @@ class Crb(object):
> """
> Get interface name of specified pci device on linux.
> """
> - command = 'ls /sys/bus/pci/devices/0000:%s:%s/net' % (bus_id,
> devfun_id)
> + command = 'ls --color=never /sys/bus/pci/devices/0000:%s:%s/net' %
> (bus_id, devfun_id)
> return self.send_expect(command, '# ')
>
> def get_interface_name_freebsd(self, bus_id, devfun_id):
> diff --git a/framework/dut.py b/framework/dut.py
> index 4def144..f901270 100644
> --- a/framework/dut.py
> +++ b/framework/dut.py
> @@ -420,7 +420,10 @@ class Dut(Crb):
> out = self.send_expect("ip link show %s" % intf, "# ")
> if "DOWN" in out:
> self.send_expect("ip link set %s up" % intf, "# ")
> - time.sleep(5)
> + """
> + I217 and I218 requires more time to acquire V6 address.
> + """
> + time.sleep(25)
>
> self.logger.info("DUT: [000:%s %s] %s" % (pci_bus,
> pci_id,
> diff --git a/framework/project_dpdk.py b/framework/project_dpdk.py
> index 6e25f1f..3577eb7 100644
> --- a/framework/project_dpdk.py
> +++ b/framework/project_dpdk.py
> @@ -96,7 +96,9 @@ class DPDKdut(Dut):
> assert ("vfio_iommu_type1" in out), "Failed to setup vfio-
> pci"
> else:
> self.send_expect("modprobe uio", "#", 70)
> - self.send_expect("rmmod -f igb_uio", "#", 70)
> + out = self.send_expect("lsmod | grep igb_uio", "#")
> + if "igb_uio" in out:
> + self.send_expect("rmmod -f igb_uio", "#", 70)
> self.send_expect("insmod ./" + target + "/kmod/igb_uio.ko",
> "#", 60)
> out = self.send_expect("lsmod | grep igb_uio", "#")
> assert ("igb_uio" in out), "Failed to insmod igb_uio"
> diff --git a/framework/settings.py b/framework/settings.py
> index 0d4ed82..2ef8db8 100644
> --- a/framework/settings.py
> +++ b/framework/settings.py
> @@ -50,7 +50,11 @@ NICS = {
> 'springfountain': '8086:154a',
> 'virtio': '1af4:1000',
> 'avoton': '8086:1f41',
> - 'avoton2c5': '8086:1f45'
> + 'avoton2c5': '8086:1f45',
> + 'I217V': '8086:153b',
> + 'I217LM': '8086:153a',
> + 'I218V': '8086:1559',
> + 'I218LM': '8086:155a',
> }
>
> DRIVERS = {
> @@ -72,6 +76,10 @@ DRIVERS = {
> 'virtio': 'igb',
> 'avoton': 'igb',
> 'avoton2c5': 'igb',
> + 'I217V': 'igb',
> + 'I217LM': 'igb',
> + 'I218V': 'igb',
> + 'I218LM': 'igb',
> }
>
> """
> diff --git a/tests/TestSuite_ip_pipeline.py
> b/tests/TestSuite_ip_pipeline.py
> index 9c56799..7da393e 100644
> --- a/tests/TestSuite_ip_pipeline.py
> +++ b/tests/TestSuite_ip_pipeline.py
> @@ -292,7 +292,11 @@ class TestIPPipeline(TestCase):
> """
>
> # Check for port availability
> - self.needed_ports = {"niantic": 2}
> + self.needed_ports = {"niantic": 2,
> + "I217V": 1,
> + "I217LM": 1,
> + "I218V": 1,
> + "I218LM": 1}
> self.dut_ports = self.dut.get_ports(self.nic)
> self.verify(len(self.dut_ports) >= self.needed_ports[self.nic],
> "Insufficient ports for speed testing")
> diff --git a/tests/TestSuite_pmd.py b/tests/TestSuite_pmd.py
> index acd6364..b88352f 100644
> --- a/tests/TestSuite_pmd.py
> +++ b/tests/TestSuite_pmd.py
> @@ -96,11 +96,15 @@ class TestPmd(TestCase):
> "kawela_2": 2,
> "bartonhills": 4,
> "82545EM": 2,
> - "82540EM": 2}
> + "82540EM": 2,
> + "I217V": 1,
> + "I217LM": 1,
> + "I218V": 1,
> + "I218LM": 1}
>
> self.blacklist = ""
>
> - self.verify(self.nic in ["kawela_2", "niantic", "bartonhills",
> "82545EM", "82540EM"],
> + self.verify(self.nic in ["kawela_2", "niantic", "bartonhills",
> "82545EM", "82540EM", "I217V", "I217LM", "I218V", "I218LM"],
> "NIC Unsupported: " + str(self.nic))
>
> # Based on h/w type, choose how many ports to use
> --
> 1.9.1
prev parent reply other threads:[~2015-01-23 9:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-22 16:40 Ravi Kerur
2015-01-22 16:40 ` Ravi Kerur
2015-01-23 9:58 ` Liu, Yong [this message]
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=86228AFD5BCD8E4EBFD2B90117B5E81E10D52E6B@SHSMSX103.ccr.corp.intel.com \
--to=yong.liu@intel.com \
--cc=dts@dpdk.org \
--cc=rkerur@gmail.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).