test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] L2FW fails with 'Not enough cores for performance!!!' (framework/etgen, py)
@ 2018-04-16 11:46 Kevin Wilson
  2018-04-17  1:34 ` Liu, Yong
  0 siblings, 1 reply; 6+ messages in thread
From: Kevin Wilson @ 2018-04-16 11:46 UTC (permalink / raw)
  To: dts

Hi,
I am trying to run DTS L2FW performance between a tester and a DUT using DTS
(with scapy, not with IXIA) and I am getting the following error:
TestL2fwd: Test Case test_perf_l2fwd_performance Result FAILED: 'Not
enough cores for performance!!!'
and the DTS app terminates.
I located the error, and it is from packet_generator() method of
framework/etgen.py
What can be the reason for this  ?

Further details:
The execution.cfg file I am using is:
[Execution1]
crbs=IP adderss of DUT
drivername=igb_uio
test_suites=
       l2fwd
targets=
    x86_64-native-linuxapp-gcc
parameters=nic_type=niantic:perf=true

I have 2 machine: host A is the tester, and host B is the DUT.
Both have IXGBE nics, and each of these 2 nics have 2 ports.
On the tester, the PCI ids of the IXGBEs are 0000:04:00.0 and 0000:04:00.1
On the DUT, the PCI ids of the IXGBEs are 0000:06:00.0 and 0000:06:00.1
The IXGBEs are 8086:158b on both hosts

I have two configuration files:
conf/ports.cfg:
[DUT IP]
ports =
    pci=0000:06:00.0,peer=0000:04:00.0;
    pci=0000:06:00.1,peer=0000:04:00.1;


conf/crb.cfg:

[DUT IP]
dut_ip=DUT IP
dut_user=root
dut_passwd=dut_password
os=linux
tester_ip=TESTER IP
tester_passwd=tester_password
channels=4
bypass_core0=False

Both hosts have 4 cores (as is shown by "cat /proc/cpuinfo | grep -i processor")
I am running DTS by:
./dts --git=v17.11  --config-file=myConfig.cfg


Regards,
Kevin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] L2FW fails with 'Not enough cores for performance!!!' (framework/etgen, py)
  2018-04-16 11:46 [dts] L2FW fails with 'Not enough cores for performance!!!' (framework/etgen, py) Kevin Wilson
@ 2018-04-17  1:34 ` Liu, Yong
  2018-04-17 18:52   ` Kevin Wilson
  0 siblings, 1 reply; 6+ messages in thread
From: Liu, Yong @ 2018-04-17  1:34 UTC (permalink / raw)
  To: Kevin Wilson, dts

Hi Kevin,
DTS will try to allocate two physical cores for DPDK based pktgen. Meanwhile will skip first physical cores for system usage.
I'm not sure whether the four cores on your server are all physical cores. If not, may met such issue.

Thanks,
Marvin

> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Kevin Wilson
> Sent: Monday, April 16, 2018 7:47 PM
> To: dts@dpdk.org
> Subject: [dts] L2FW fails with 'Not enough cores for performance!!!'
> (framework/etgen, py)
> 
> Hi,
> I am trying to run DTS L2FW performance between a tester and a DUT using
> DTS
> (with scapy, not with IXIA) and I am getting the following error:
> TestL2fwd: Test Case test_perf_l2fwd_performance Result FAILED: 'Not
> enough cores for performance!!!'
> and the DTS app terminates.
> I located the error, and it is from packet_generator() method of
> framework/etgen.py
> What can be the reason for this  ?
> 
> Further details:
> The execution.cfg file I am using is:
> [Execution1]
> crbs=IP adderss of DUT
> drivername=igb_uio
> test_suites=
>        l2fwd
> targets=
>     x86_64-native-linuxapp-gcc
> parameters=nic_type=niantic:perf=true
> 
> I have 2 machine: host A is the tester, and host B is the DUT.
> Both have IXGBE nics, and each of these 2 nics have 2 ports.
> On the tester, the PCI ids of the IXGBEs are 0000:04:00.0 and 0000:04:00.1
> On the DUT, the PCI ids of the IXGBEs are 0000:06:00.0 and 0000:06:00.1
> The IXGBEs are 8086:158b on both hosts
> 
> I have two configuration files:
> conf/ports.cfg:
> [DUT IP]
> ports =
>     pci=0000:06:00.0,peer=0000:04:00.0;
>     pci=0000:06:00.1,peer=0000:04:00.1;
> 
> 
> conf/crb.cfg:
> 
> [DUT IP]
> dut_ip=DUT IP
> dut_user=root
> dut_passwd=dut_password
> os=linux
> tester_ip=TESTER IP
> tester_passwd=tester_password
> channels=4
> bypass_core0=False
> 
> Both hosts have 4 cores (as is shown by "cat /proc/cpuinfo | grep -i
> processor")
> I am running DTS by:
> ./dts --git=v17.11  --config-file=myConfig.cfg
> 
> 
> Regards,
> Kevin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] L2FW fails with 'Not enough cores for performance!!!' (framework/etgen, py)
  2018-04-17  1:34 ` Liu, Yong
@ 2018-04-17 18:52   ` Kevin Wilson
  2018-04-18  2:18     ` Liu, Yong
  0 siblings, 1 reply; 6+ messages in thread
From: Kevin Wilson @ 2018-04-17 18:52 UTC (permalink / raw)
  To: Liu, Yong; +Cc: dts

Hi,
Thanks for you quick reply, Yong Liu!

First, I want to mention that I am running the tests on two hosts, and
none of them is a VM.
Second, as I mention in the mail, when I ran:

cat /proc/cpuinfo | grep -i processor
I see 4 cores, thus:
processor       : 0
processor       : 1
processor       : 2
processor       : 3

Doesn't this indicate 4 physical processors?
Another information I want to add is the output of lspcu:
lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Stepping:              7
CPU MHz:               1228.312
BogoMIPS:              4799.79
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              10240K
NUMA node0 CPU(s):     0-3

And running:
/work/src/dpdk-17.11/usertools/cpu_layout.py
Gives:
======================================================================
Core and Socket Information (as reported by '/sys/devices/system/cpu')
======================================================================

cores =  [0, 1, 2, 3]
sockets =  [0]

       Socket 0
       --------
Core 0 [0]
Core 1 [1]
Core 2 [2]
Core 3 [3]

This this info indicate 4 physical cores ?

Second question is: should the tester have exactly the same
number of cores, sockets and threads as the DUT? I don't think I saw
such a requirement in the docs, but maybe
I am wrong.


Regards,
Kevin

On Tue, Apr 17, 2018 at 4:34 AM, Liu, Yong <yong.liu@intel.com> wrote:
> Hi Kevin,
> DTS will try to allocate two physical cores for DPDK based pktgen. Meanwhile will skip first physical cores for system usage.
> I'm not sure whether the four cores on your server are all physical cores. If not, may met such issue.
>
> Thanks,
> Marvin
>
>> -----Original Message-----
>> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Kevin Wilson
>> Sent: Monday, April 16, 2018 7:47 PM
>> To: dts@dpdk.org
>> Subject: [dts] L2FW fails with 'Not enough cores for performance!!!'
>> (framework/etgen, py)
>>
>> Hi,
>> I am trying to run DTS L2FW performance between a tester and a DUT using
>> DTS
>> (with scapy, not with IXIA) and I am getting the following error:
>> TestL2fwd: Test Case test_perf_l2fwd_performance Result FAILED: 'Not
>> enough cores for performance!!!'
>> and the DTS app terminates.
>> I located the error, and it is from packet_generator() method of
>> framework/etgen.py
>> What can be the reason for this  ?
>>
>> Further details:
>> The execution.cfg file I am using is:
>> [Execution1]
>> crbs=IP adderss of DUT
>> drivername=igb_uio
>> test_suites=
>>        l2fwd
>> targets=
>>     x86_64-native-linuxapp-gcc
>> parameters=nic_type=niantic:perf=true
>>
>> I have 2 machine: host A is the tester, and host B is the DUT.
>> Both have IXGBE nics, and each of these 2 nics have 2 ports.
>> On the tester, the PCI ids of the IXGBEs are 0000:04:00.0 and 0000:04:00.1
>> On the DUT, the PCI ids of the IXGBEs are 0000:06:00.0 and 0000:06:00.1
>> The IXGBEs are 8086:158b on both hosts
>>
>> I have two configuration files:
>> conf/ports.cfg:
>> [DUT IP]
>> ports =
>>     pci=0000:06:00.0,peer=0000:04:00.0;
>>     pci=0000:06:00.1,peer=0000:04:00.1;
>>
>>
>> conf/crb.cfg:
>>
>> [DUT IP]
>> dut_ip=DUT IP
>> dut_user=root
>> dut_passwd=dut_password
>> os=linux
>> tester_ip=TESTER IP
>> tester_passwd=tester_password
>> channels=4
>> bypass_core0=False
>>
>> Both hosts have 4 cores (as is shown by "cat /proc/cpuinfo | grep -i
>> processor")
>> I am running DTS by:
>> ./dts --git=v17.11  --config-file=myConfig.cfg
>>
>>
>> Regards,
>> Kevin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] L2FW fails with 'Not enough cores for performance!!!' (framework/etgen, py)
  2018-04-17 18:52   ` Kevin Wilson
@ 2018-04-18  2:18     ` Liu, Yong
  2018-04-18 18:10       ` Kevin Wilson
  0 siblings, 1 reply; 6+ messages in thread
From: Liu, Yong @ 2018-04-18  2:18 UTC (permalink / raw)
  To: Kevin Wilson; +Cc: dts

Kevin,
According to the log, all four cores are physical cores and no hyper-threading enabled.
DTS will allocate two physical cores for each port which will require four cores within you setup.
By default bypass_core0 setting is enabled, so only three cores are available and can’t start dpdk pktgen.

You can simply change the code in etgen.py and try again. 

cores = self.tester.get_reserved_core("1C", socket=numa)
...
map_cmd += "[%s:%s].%d, " % (cores[0], cores[0], port_map[port])


There's another potential error which may occur is that dpdk-pktgen can't start. 
It is because of the binary was built on our xeon server. It may contains some instructions not supported on your cpu.
If that issue happened, you need to build dpdk-pktgen on your own server.

Thanks,
Marvin

> -----Original Message-----
> From: Kevin Wilson [mailto:wkevils@gmail.com]
> Sent: Wednesday, April 18, 2018 2:52 AM
> To: Liu, Yong <yong.liu@intel.com>
> Cc: dts@dpdk.org
> Subject: Re: [dts] L2FW fails with 'Not enough cores for performance!!!'
> (framework/etgen, py)
> 
> Hi,
> Thanks for you quick reply, Yong Liu!
> 
> First, I want to mention that I am running the tests on two hosts, and
> none of them is a VM.
> Second, as I mention in the mail, when I ran:
> 
> cat /proc/cpuinfo | grep -i processor
> I see 4 cores, thus:
> processor       : 0
> processor       : 1
> processor       : 2
> processor       : 3
> 
> Doesn't this indicate 4 physical processors?
> Another information I want to add is the output of lspcu:
> lscpu
> Architecture:          x86_64
> CPU op-mode(s):        32-bit, 64-bit
> Byte Order:            Little Endian
> CPU(s):                4
> On-line CPU(s) list:   0-3
> Thread(s) per core:    1
> Core(s) per socket:    4
> Socket(s):             1
> NUMA node(s):          1
> Vendor ID:             GenuineIntel
> CPU family:            6
> Model:                 45
> Stepping:              7
> CPU MHz:               1228.312
> BogoMIPS:              4799.79
> Virtualization:        VT-x
> L1d cache:             32K
> L1i cache:             32K
> L2 cache:              256K
> L3 cache:              10240K
> NUMA node0 CPU(s):     0-3
> 
> And running:
> /work/src/dpdk-17.11/usertools/cpu_layout.py
> Gives:
> ======================================================================
> Core and Socket Information (as reported by '/sys/devices/system/cpu')
> ======================================================================
> 
> cores =  [0, 1, 2, 3]
> sockets =  [0]
> 
>        Socket 0
>        --------
> Core 0 [0]
> Core 1 [1]
> Core 2 [2]
> Core 3 [3]
> 
> This this info indicate 4 physical cores ?
> 
> Second question is: should the tester have exactly the same
> number of cores, sockets and threads as the DUT? I don't think I saw
> such a requirement in the docs, but maybe
> I am wrong.
> 
> 
> Regards,
> Kevin
> 
> On Tue, Apr 17, 2018 at 4:34 AM, Liu, Yong <yong.liu@intel.com> wrote:
> > Hi Kevin,
> > DTS will try to allocate two physical cores for DPDK based pktgen.
> Meanwhile will skip first physical cores for system usage.
> > I'm not sure whether the four cores on your server are all physical
> cores. If not, may met such issue.
> >
> > Thanks,
> > Marvin
> >
> >> -----Original Message-----
> >> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Kevin Wilson
> >> Sent: Monday, April 16, 2018 7:47 PM
> >> To: dts@dpdk.org
> >> Subject: [dts] L2FW fails with 'Not enough cores for performance!!!'
> >> (framework/etgen, py)
> >>
> >> Hi,
> >> I am trying to run DTS L2FW performance between a tester and a DUT
> using
> >> DTS
> >> (with scapy, not with IXIA) and I am getting the following error:
> >> TestL2fwd: Test Case test_perf_l2fwd_performance Result FAILED: 'Not
> >> enough cores for performance!!!'
> >> and the DTS app terminates.
> >> I located the error, and it is from packet_generator() method of
> >> framework/etgen.py
> >> What can be the reason for this  ?
> >>
> >> Further details:
> >> The execution.cfg file I am using is:
> >> [Execution1]
> >> crbs=IP adderss of DUT
> >> drivername=igb_uio
> >> test_suites=
> >>        l2fwd
> >> targets=
> >>     x86_64-native-linuxapp-gcc
> >> parameters=nic_type=niantic:perf=true
> >>
> >> I have 2 machine: host A is the tester, and host B is the DUT.
> >> Both have IXGBE nics, and each of these 2 nics have 2 ports.
> >> On the tester, the PCI ids of the IXGBEs are 0000:04:00.0 and
> 0000:04:00.1
> >> On the DUT, the PCI ids of the IXGBEs are 0000:06:00.0 and 0000:06:00.1
> >> The IXGBEs are 8086:158b on both hosts
> >>
> >> I have two configuration files:
> >> conf/ports.cfg:
> >> [DUT IP]
> >> ports =
> >>     pci=0000:06:00.0,peer=0000:04:00.0;
> >>     pci=0000:06:00.1,peer=0000:04:00.1;
> >>
> >>
> >> conf/crb.cfg:
> >>
> >> [DUT IP]
> >> dut_ip=DUT IP
> >> dut_user=root
> >> dut_passwd=dut_password
> >> os=linux
> >> tester_ip=TESTER IP
> >> tester_passwd=tester_password
> >> channels=4
> >> bypass_core0=False
> >>
> >> Both hosts have 4 cores (as is shown by "cat /proc/cpuinfo | grep -i
> >> processor")
> >> I am running DTS by:
> >> ./dts --git=v17.11  --config-file=myConfig.cfg
> >>
> >>
> >> Regards,
> >> Kevin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] L2FW fails with 'Not enough cores for performance!!!' (framework/etgen, py)
  2018-04-18  2:18     ` Liu, Yong
@ 2018-04-18 18:10       ` Kevin Wilson
  2018-04-19  6:02         ` Liu, Yong
  0 siblings, 1 reply; 6+ messages in thread
From: Kevin Wilson @ 2018-04-18 18:10 UTC (permalink / raw)
  To: Liu, Yong; +Cc: dts

Hi Marvin,
I tried your suggested fix and I am passing that obstacle of
'Not enough cores for performance!!!' error.

However, I do encounter later on an error of "illegal instruction" for ./pktgen,
so you were right about your assumption.

Is it possible to upload the pktgen source code that you are using to
the DTS repo so
me and others can build it  to overcome this pitfall? I am not sure as
to which dpdk-pktgen version to use ( also
it could be that you use dpdk-pktgen patches which are mandatory for
running DTS succesfull)


Regards,
Kevin

On Wed, Apr 18, 2018 at 5:18 AM, Liu, Yong <yong.liu@intel.com> wrote:
> Kevin,
> According to the log, all four cores are physical cores and no hyper-threading enabled.
> DTS will allocate two physical cores for each port which will require four cores within you setup.
> By default bypass_core0 setting is enabled, so only three cores are available and can’t start dpdk pktgen.
>
> You can simply change the code in etgen.py and try again.
>
> cores = self.tester.get_reserved_core("1C", socket=numa)
> ...
> map_cmd += "[%s:%s].%d, " % (cores[0], cores[0], port_map[port])
>
>
> There's another potential error which may occur is that dpdk-pktgen can't start.
> It is because of the binary was built on our xeon server. It may contains some instructions not supported on your cpu.
> If that issue happened, you need to build dpdk-pktgen on your own server.
>
> Thanks,
> Marvin
>
>> -----Original Message-----
>> From: Kevin Wilson [mailto:wkevils@gmail.com]
>> Sent: Wednesday, April 18, 2018 2:52 AM
>> To: Liu, Yong <yong.liu@intel.com>
>> Cc: dts@dpdk.org
>> Subject: Re: [dts] L2FW fails with 'Not enough cores for performance!!!'
>> (framework/etgen, py)
>>
>> Hi,
>> Thanks for you quick reply, Yong Liu!
>>
>> First, I want to mention that I am running the tests on two hosts, and
>> none of them is a VM.
>> Second, as I mention in the mail, when I ran:
>>
>> cat /proc/cpuinfo | grep -i processor
>> I see 4 cores, thus:
>> processor       : 0
>> processor       : 1
>> processor       : 2
>> processor       : 3
>>
>> Doesn't this indicate 4 physical processors?
>> Another information I want to add is the output of lspcu:
>> lscpu
>> Architecture:          x86_64
>> CPU op-mode(s):        32-bit, 64-bit
>> Byte Order:            Little Endian
>> CPU(s):                4
>> On-line CPU(s) list:   0-3
>> Thread(s) per core:    1
>> Core(s) per socket:    4
>> Socket(s):             1
>> NUMA node(s):          1
>> Vendor ID:             GenuineIntel
>> CPU family:            6
>> Model:                 45
>> Stepping:              7
>> CPU MHz:               1228.312
>> BogoMIPS:              4799.79
>> Virtualization:        VT-x
>> L1d cache:             32K
>> L1i cache:             32K
>> L2 cache:              256K
>> L3 cache:              10240K
>> NUMA node0 CPU(s):     0-3
>>
>> And running:
>> /work/src/dpdk-17.11/usertools/cpu_layout.py
>> Gives:
>> ======================================================================
>> Core and Socket Information (as reported by '/sys/devices/system/cpu')
>> ======================================================================
>>
>> cores =  [0, 1, 2, 3]
>> sockets =  [0]
>>
>>        Socket 0
>>        --------
>> Core 0 [0]
>> Core 1 [1]
>> Core 2 [2]
>> Core 3 [3]
>>
>> This this info indicate 4 physical cores ?
>>
>> Second question is: should the tester have exactly the same
>> number of cores, sockets and threads as the DUT? I don't think I saw
>> such a requirement in the docs, but maybe
>> I am wrong.
>>
>>
>> Regards,
>> Kevin
>>
>> On Tue, Apr 17, 2018 at 4:34 AM, Liu, Yong <yong.liu@intel.com> wrote:
>> > Hi Kevin,
>> > DTS will try to allocate two physical cores for DPDK based pktgen.
>> Meanwhile will skip first physical cores for system usage.
>> > I'm not sure whether the four cores on your server are all physical
>> cores. If not, may met such issue.
>> >
>> > Thanks,
>> > Marvin
>> >
>> >> -----Original Message-----
>> >> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Kevin Wilson
>> >> Sent: Monday, April 16, 2018 7:47 PM
>> >> To: dts@dpdk.org
>> >> Subject: [dts] L2FW fails with 'Not enough cores for performance!!!'
>> >> (framework/etgen, py)
>> >>
>> >> Hi,
>> >> I am trying to run DTS L2FW performance between a tester and a DUT
>> using
>> >> DTS
>> >> (with scapy, not with IXIA) and I am getting the following error:
>> >> TestL2fwd: Test Case test_perf_l2fwd_performance Result FAILED: 'Not
>> >> enough cores for performance!!!'
>> >> and the DTS app terminates.
>> >> I located the error, and it is from packet_generator() method of
>> >> framework/etgen.py
>> >> What can be the reason for this  ?
>> >>
>> >> Further details:
>> >> The execution.cfg file I am using is:
>> >> [Execution1]
>> >> crbs=IP adderss of DUT
>> >> drivername=igb_uio
>> >> test_suites=
>> >>        l2fwd
>> >> targets=
>> >>     x86_64-native-linuxapp-gcc
>> >> parameters=nic_type=niantic:perf=true
>> >>
>> >> I have 2 machine: host A is the tester, and host B is the DUT.
>> >> Both have IXGBE nics, and each of these 2 nics have 2 ports.
>> >> On the tester, the PCI ids of the IXGBEs are 0000:04:00.0 and
>> 0000:04:00.1
>> >> On the DUT, the PCI ids of the IXGBEs are 0000:06:00.0 and 0000:06:00.1
>> >> The IXGBEs are 8086:158b on both hosts
>> >>
>> >> I have two configuration files:
>> >> conf/ports.cfg:
>> >> [DUT IP]
>> >> ports =
>> >>     pci=0000:06:00.0,peer=0000:04:00.0;
>> >>     pci=0000:06:00.1,peer=0000:04:00.1;
>> >>
>> >>
>> >> conf/crb.cfg:
>> >>
>> >> [DUT IP]
>> >> dut_ip=DUT IP
>> >> dut_user=root
>> >> dut_passwd=dut_password
>> >> os=linux
>> >> tester_ip=TESTER IP
>> >> tester_passwd=tester_password
>> >> channels=4
>> >> bypass_core0=False
>> >>
>> >> Both hosts have 4 cores (as is shown by "cat /proc/cpuinfo | grep -i
>> >> processor")
>> >> I am running DTS by:
>> >> ./dts --git=v17.11  --config-file=myConfig.cfg
>> >>
>> >>
>> >> Regards,
>> >> Kevin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] L2FW fails with 'Not enough cores for performance!!!' (framework/etgen, py)
  2018-04-18 18:10       ` Kevin Wilson
@ 2018-04-19  6:02         ` Liu, Yong
  0 siblings, 0 replies; 6+ messages in thread
From: Liu, Yong @ 2018-04-19  6:02 UTC (permalink / raw)
  To: Kevin Wilson; +Cc: dts

Kevin,
You can use the combination pktgen-3.5.0 + dpdk 18.02. Meanwhile I will submit one patch for enabling default dpdk-pktgen support.

Thanks,
Marvin

> -----Original Message-----
> From: Kevin Wilson [mailto:wkevils@gmail.com]
> Sent: Thursday, April 19, 2018 2:11 AM
> To: Liu, Yong <yong.liu@intel.com>
> Cc: dts@dpdk.org
> Subject: Re: [dts] L2FW fails with 'Not enough cores for performance!!!'
> (framework/etgen, py)
> 
> Hi Marvin,
> I tried your suggested fix and I am passing that obstacle of
> 'Not enough cores for performance!!!' error.
> 
> However, I do encounter later on an error of "illegal instruction"
> for ./pktgen,
> so you were right about your assumption.
> 
> Is it possible to upload the pktgen source code that you are using to
> the DTS repo so
> me and others can build it  to overcome this pitfall? I am not sure as
> to which dpdk-pktgen version to use ( also
> it could be that you use dpdk-pktgen patches which are mandatory for
> running DTS succesfull)
> 
> 
> Regards,
> Kevin
> 
> On Wed, Apr 18, 2018 at 5:18 AM, Liu, Yong <yong.liu@intel.com> wrote:
> > Kevin,
> > According to the log, all four cores are physical cores and no hyper-
> threading enabled.
> > DTS will allocate two physical cores for each port which will require
> four cores within you setup.
> > By default bypass_core0 setting is enabled, so only three cores are
> available and can’t start dpdk pktgen.
> >
> > You can simply change the code in etgen.py and try again.
> >
> > cores = self.tester.get_reserved_core("1C", socket=numa)
> > ...
> > map_cmd += "[%s:%s].%d, " % (cores[0], cores[0], port_map[port])
> >
> >
> > There's another potential error which may occur is that dpdk-pktgen
> can't start.
> > It is because of the binary was built on our xeon server. It may
> contains some instructions not supported on your cpu.
> > If that issue happened, you need to build dpdk-pktgen on your own server.
> >
> > Thanks,
> > Marvin
> >
> >> -----Original Message-----
> >> From: Kevin Wilson [mailto:wkevils@gmail.com]
> >> Sent: Wednesday, April 18, 2018 2:52 AM
> >> To: Liu, Yong <yong.liu@intel.com>
> >> Cc: dts@dpdk.org
> >> Subject: Re: [dts] L2FW fails with 'Not enough cores for
> performance!!!'
> >> (framework/etgen, py)
> >>
> >> Hi,
> >> Thanks for you quick reply, Yong Liu!
> >>
> >> First, I want to mention that I am running the tests on two hosts, and
> >> none of them is a VM.
> >> Second, as I mention in the mail, when I ran:
> >>
> >> cat /proc/cpuinfo | grep -i processor
> >> I see 4 cores, thus:
> >> processor       : 0
> >> processor       : 1
> >> processor       : 2
> >> processor       : 3
> >>
> >> Doesn't this indicate 4 physical processors?
> >> Another information I want to add is the output of lspcu:
> >> lscpu
> >> Architecture:          x86_64
> >> CPU op-mode(s):        32-bit, 64-bit
> >> Byte Order:            Little Endian
> >> CPU(s):                4
> >> On-line CPU(s) list:   0-3
> >> Thread(s) per core:    1
> >> Core(s) per socket:    4
> >> Socket(s):             1
> >> NUMA node(s):          1
> >> Vendor ID:             GenuineIntel
> >> CPU family:            6
> >> Model:                 45
> >> Stepping:              7
> >> CPU MHz:               1228.312
> >> BogoMIPS:              4799.79
> >> Virtualization:        VT-x
> >> L1d cache:             32K
> >> L1i cache:             32K
> >> L2 cache:              256K
> >> L3 cache:              10240K
> >> NUMA node0 CPU(s):     0-3
> >>
> >> And running:
> >> /work/src/dpdk-17.11/usertools/cpu_layout.py
> >> Gives:
> >> ======================================================================
> >> Core and Socket Information (as reported by '/sys/devices/system/cpu')
> >> ======================================================================
> >>
> >> cores =  [0, 1, 2, 3]
> >> sockets =  [0]
> >>
> >>        Socket 0
> >>        --------
> >> Core 0 [0]
> >> Core 1 [1]
> >> Core 2 [2]
> >> Core 3 [3]
> >>
> >> This this info indicate 4 physical cores ?
> >>
> >> Second question is: should the tester have exactly the same
> >> number of cores, sockets and threads as the DUT? I don't think I saw
> >> such a requirement in the docs, but maybe
> >> I am wrong.
> >>
> >>
> >> Regards,
> >> Kevin
> >>
> >> On Tue, Apr 17, 2018 at 4:34 AM, Liu, Yong <yong.liu@intel.com> wrote:
> >> > Hi Kevin,
> >> > DTS will try to allocate two physical cores for DPDK based pktgen.
> >> Meanwhile will skip first physical cores for system usage.
> >> > I'm not sure whether the four cores on your server are all physical
> >> cores. If not, may met such issue.
> >> >
> >> > Thanks,
> >> > Marvin
> >> >
> >> >> -----Original Message-----
> >> >> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Kevin Wilson
> >> >> Sent: Monday, April 16, 2018 7:47 PM
> >> >> To: dts@dpdk.org
> >> >> Subject: [dts] L2FW fails with 'Not enough cores for performance!!!'
> >> >> (framework/etgen, py)
> >> >>
> >> >> Hi,
> >> >> I am trying to run DTS L2FW performance between a tester and a DUT
> >> using
> >> >> DTS
> >> >> (with scapy, not with IXIA) and I am getting the following error:
> >> >> TestL2fwd: Test Case test_perf_l2fwd_performance Result FAILED: 'Not
> >> >> enough cores for performance!!!'
> >> >> and the DTS app terminates.
> >> >> I located the error, and it is from packet_generator() method of
> >> >> framework/etgen.py
> >> >> What can be the reason for this  ?
> >> >>
> >> >> Further details:
> >> >> The execution.cfg file I am using is:
> >> >> [Execution1]
> >> >> crbs=IP adderss of DUT
> >> >> drivername=igb_uio
> >> >> test_suites=
> >> >>        l2fwd
> >> >> targets=
> >> >>     x86_64-native-linuxapp-gcc
> >> >> parameters=nic_type=niantic:perf=true
> >> >>
> >> >> I have 2 machine: host A is the tester, and host B is the DUT.
> >> >> Both have IXGBE nics, and each of these 2 nics have 2 ports.
> >> >> On the tester, the PCI ids of the IXGBEs are 0000:04:00.0 and
> >> 0000:04:00.1
> >> >> On the DUT, the PCI ids of the IXGBEs are 0000:06:00.0 and
> 0000:06:00.1
> >> >> The IXGBEs are 8086:158b on both hosts
> >> >>
> >> >> I have two configuration files:
> >> >> conf/ports.cfg:
> >> >> [DUT IP]
> >> >> ports =
> >> >>     pci=0000:06:00.0,peer=0000:04:00.0;
> >> >>     pci=0000:06:00.1,peer=0000:04:00.1;
> >> >>
> >> >>
> >> >> conf/crb.cfg:
> >> >>
> >> >> [DUT IP]
> >> >> dut_ip=DUT IP
> >> >> dut_user=root
> >> >> dut_passwd=dut_password
> >> >> os=linux
> >> >> tester_ip=TESTER IP
> >> >> tester_passwd=tester_password
> >> >> channels=4
> >> >> bypass_core0=False
> >> >>
> >> >> Both hosts have 4 cores (as is shown by "cat /proc/cpuinfo | grep -i
> >> >> processor")
> >> >> I am running DTS by:
> >> >> ./dts --git=v17.11  --config-file=myConfig.cfg
> >> >>
> >> >>
> >> >> Regards,
> >> >> Kevin

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-04-19  6:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-16 11:46 [dts] L2FW fails with 'Not enough cores for performance!!!' (framework/etgen, py) Kevin Wilson
2018-04-17  1:34 ` Liu, Yong
2018-04-17 18:52   ` Kevin Wilson
2018-04-18  2:18     ` Liu, Yong
2018-04-18 18:10       ` Kevin Wilson
2018-04-19  6:02         ` Liu, Yong

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).