Re: [vpp-dev] vpp performnace measurement in sriov configuration.

2017-08-10 Thread Kinsella, Ray

Hi Rahul,

So there a few additional hoops you have to jump through to get good 
performance. The biggest of which is making sure that


1. The host is setup to make hugepages available.
2. QEMU is pointed at the hugepages.
3. The guest is setup to make hugepages available.

The following documented from DPDK covers it in some detail.

http://dpdk.readthedocs.io/en/v16.04/sample_app_ug/vhost.html

Ray K

On 09/08/2017 23:33, Rahul Negi wrote:

Hi All,
 I am working on an use case where i want to measure the Maximum PPS
handled by vpp in sriov configuration.I have created a virtual machine
on a host having specifications as follows:-
1.RHEL 7.3 installed
2.Intel X540 10 gig NIC attached

I have created a virtual function from one of the interface of 10 gig
NIC(for e.g ens3f0) and attached it to my Virtual Machine.I have
installed ubuntu 16.04 on my Vm. My vpp version running on vm is 17.10.

vpp# show version verbose
Version:  v17.10-rc0~86-g7d4a22c
Compiled by:  root
Compile host: ubuntu
Compile date: Wed Jul 26 18:56:51 EDT 2017
Compile location: /root/vpp/vpp
Compiler: GCC 5.4.0 20160609
Current PID:  5006

Currently My Vm is with 4vcpu and vpp  cpu model is as follow:-
1.one main thread
2.Three worker threads

I am not able to get more than 4Mpps with this configuration of vpp.When
i am pumping more than 4Mpps traffic to my VM. I can see this
counter rx_no_dma_resources: 5628104 getting incremented at the host.As
there is no eth stats available in sriov configuration for virtual
functions attached to VM.

Guest vcpus are pin to host physical cpus.

So 4Mpps is the expected number that we can get in this configuration?

Thanks,
Rahul


___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] Port range in ACL hash lookup

2017-08-10 Thread Soroosh Sardari
Dear Andrew,

Thanks for adding me to reviewer of the gerrit task, I checked my gerrit
account it's already reviewed and merged.
Thanks for such a fast response.

Cheers,
Soroosh

On Aug 10, 2017 8:20 PM, "Andrew  Yourtchenko"  wrote:

> Dear Soroosh,
>
> I have added you as a reviewer to https://gerrit.fd.io/r/#/c/7983/
>
> --a
>
> On 8/10/17, Andrew   Yourtchenko  wrote:
> > Dear Soroosh,
> >
> > Thanks for catching, I think you are right!
> >
> > The assignment should come from curr_index rather than
> > result_val->applied_entry_index..., and the non-shadowed check just
> > below will not apply, so would need to be deleted.
> >
> > Before getting the fix in, let me see how I can enhance the unit test
> > in make test to improve the coverage - this should have been caught
> > there.
> >
> > I've made https://jira.fd.io/browse/VPP-937 to track it.
> >
> > Thanks a lot again!
> >
> > --a
> >
> > On 8/10/17, Soroosh Sardari  wrote:
> >> Dear vpp folks,
> >>
> >> There is an ambiguity for me in 'multi_acl_match_get_applied_ace_index'
> >> function in 'hash_lookup.c' when port-range check is true.
> >> After finding an ace with matched port range, why we do not assign
> >> curr_index to curr_match_index?
> >> The following code snippet  is the lines I refered above.
> >>
> >> u32
> >>  a10e94b422ef0c20dcdec20d31a1f5049>
> >> curr_index = result_val->applied_entry_index;
> >> 129  while ((curr_index != ~0) && !match_portranges
> >>  a97b9b3e403fd288a38db607cd86b63f6>(am,
> >> match, curr_index)) {
> >> 130  /* while no match and there are more entries, walk... */
> >> 131  applied_hash_ace_entry_t
> >>  ace__entry__t.html>
> >> *pae = vec_elt_at_index
> >>  a341643ade1bab025cfe88e19cc1742f7>
> >> ((*applied_hash_aces),curr_index);
> >> 132  DBG
> >>  ae8924623ca601364965e3d88fb7f40fa>
> >> ("entry %d did not portmatch, advancing to %d", curr_index, pae->
> >> next_applied_entry_index
> >>  ace__entry__t.html#acf0092ae366166dc7eaa87b0d3c4ca59>
> >> );
> >> 133  curr_index = pae->next_applied_entry_index
> >>  ace__entry__t.html#acf0092ae366166dc7eaa87b0d3c4ca59>
> >> ;
> >> 134  }
> >> 135  if (curr_index < curr_match_index) {
> >> 136  DBG
> >>  ae8924623ca601364965e3d88fb7f40fa>
> >> ("The index %d is the new candidate in portrange matches.", curr_index);
> >> 137  curr_match_index = result_val->applied_entry_index
> >>
> >> Cheers,
> >> Soroosh
> >>
> >
>
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Re: [vpp-dev] Port range in ACL hash lookup

2017-08-10 Thread Andrew  Yourtchenko
Dear Soroosh,

Thanks for catching, I think you are right!

The assignment should come from curr_index rather than
result_val->applied_entry_index..., and the non-shadowed check just
below will not apply, so would need to be deleted.

Before getting the fix in, let me see how I can enhance the unit test
in make test to improve the coverage - this should have been caught
there.

I've made https://jira.fd.io/browse/VPP-937 to track it.

Thanks a lot again!

--a

On 8/10/17, Soroosh Sardari  wrote:
> Dear vpp folks,
>
> There is an ambiguity for me in 'multi_acl_match_get_applied_ace_index'
> function in 'hash_lookup.c' when port-range check is true.
> After finding an ace with matched port range, why we do not assign
> curr_index to curr_match_index?
> The following code snippet  is the lines I refered above.
>
> u32
> 
> curr_index = result_val->applied_entry_index;
> 129  while ((curr_index != ~0) && !match_portranges
> (am,
> match, curr_index)) {
> 130  /* while no match and there are more entries, walk... */
> 131  applied_hash_ace_entry_t
> 
> *pae = vec_elt_at_index
> 
> ((*applied_hash_aces),curr_index);
> 132  DBG
> 
> ("entry %d did not portmatch, advancing to %d", curr_index, pae->
> next_applied_entry_index
> 
> );
> 133  curr_index = pae->next_applied_entry_index
> 
> ;
> 134  }
> 135  if (curr_index < curr_match_index) {
> 136  DBG
> 
> ("The index %d is the new candidate in portrange matches.", curr_index);
> 137  curr_match_index = result_val->applied_entry_index
>
> Cheers,
> Soroosh
>
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] ip6 route add bug

2017-08-10 Thread Neale Ranns (nranns)
Hi Pragash,

Yes that’s a bug.
Could you submit a patch for it – we need to flip the order the ‘add’ string is 
parsed from the options so that it comes after parsing the IPv6 address.

Thanks,
neale

From: Pragash Vijayaragavan 
Reply-To: "pxv3...@rit.edu" 
Date: Thursday, 10 August 2017 at 14:47
To: "vpp-dev@lists.fd.io" 
Cc: "Neale Ranns (nranns)" , "John Marshall (jwm)" 
, Minseok Kwon 
Subject: ip6 route add bug

Hi,

When i add the following ip6 route, which starts with "add", the "add" is 
ignored and the rest of the ip is added.

Is this a bug?

You can check the outputs below.

This is in 17.07-rc0.


vpp# ip route add add:9538:44f8::/45 via 9000::1

vpp# sh ip6 fib
ipv6-VRF:0, fib_index 0, flow hash:
::/0
  unicast-ip6-chain
  [@0]: dpo-load-balance: [index:5 buckets:1 uRPF:5 to:[0:0]]
[0] [@0]: dpo-drop ip6
9000::1/128
  unicast-ip6-chain
  [@0]: dpo-load-balance: [index:8 buckets:1 uRPF:5 to:[0:0]]
[0] [@0]: dpo-drop ip6
9538:44f8::/45
  unicast-ip6-chain
  [@0]: dpo-load-balance: [index:9 buckets:1 uRPF:7 to:[0:0]]
  load-balance-map: index:0 buckets:1
 index:0
   map:0
[0] [@6]: dpo-load-balance: [index:8 buckets:1 uRPF:5 to:[0:0]]
  [0] [@0]: dpo-drop ip6
fe80::/10
  unicast-ip6-chain
  [@0]: dpo-load-balance: [index:6 buckets:1 uRPF:6 to:[0:0]]
[0] [@2]: dpo-receive


Is this fixed in 17.10.



Thanks,

Pragash Vijayaragavan
Grad Student at Rochester Institute of Technology
email : pxv3...@rit.edu
ph : 585 764 4662

___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

[vpp-dev] ip6 route add bug

2017-08-10 Thread Pragash Vijayaragavan
Hi,

When i add the following ip6 route, which starts with "add", the "add" is
ignored and the rest of the ip is added.

Is this a bug?

You can check the outputs below.

This is in 17.07-rc0.


*vpp# ip route add add:9538:44f8::/45 via 9000::1*

vpp# sh ip6 fib
ipv6-VRF:0, fib_index 0, flow hash:
::/0
  unicast-ip6-chain
  [@0]: dpo-load-balance: [index:5 buckets:1 uRPF:5 to:[0:0]]
[0] [@0]: dpo-drop ip6
9000::1/128
  unicast-ip6-chain
  [@0]: dpo-load-balance: [index:8 buckets:1 uRPF:5 to:[0:0]]
[0] [@0]: dpo-drop ip6
*9538:44f8::/45*
  unicast-ip6-chain
  [@0]: dpo-load-balance: [index:9 buckets:1 uRPF:7 to:[0:0]]
  load-balance-map: index:0 buckets:1
 index:0
   map:0
[0] [@6]: dpo-load-balance: [index:8 buckets:1 uRPF:5 to:[0:0]]
  [0] [@0]: dpo-drop ip6
fe80::/10
  unicast-ip6-chain
  [@0]: dpo-load-balance: [index:6 buckets:1 uRPF:6 to:[0:0]]
[0] [@2]: dpo-receive


Is this fixed in 17.10.



Thanks,

Pragash Vijayaragavan
Grad Student at Rochester Institute of Technology
email : pxv3...@rit.edu
ph : 585 764 4662
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Re: [vpp-dev] vpp performnace measurement in sriov configuration.

2017-08-10 Thread Soroosh Sardari
Could you send output of following command:
show run

On Aug 10, 2017 5:29 PM, "Rahul Negi"  wrote:

> Hi All,
>  I am working on an use case where i want to measure the Maximum PPS
> handled by vpp in sriov configuration.I have created a virtual machine on a
> host having specifications as follows:-
> 1.RHEL 7.3 installed
> 2.Intel X540 10 gig NIC attached
>
> I have created a virtual function from one of the interface of 10 gig
> NIC(for e.g ens3f0) and attached it to my Virtual Machine.I have installed
> ubuntu 16.04 on my Vm. My vpp version running on vm is 17.10.
>
> vpp# show version verbose
> Version:  v17.10-rc0~86-g7d4a22c
> Compiled by:  root
> Compile host: ubuntu
> Compile date: Wed Jul 26 18:56:51 EDT 2017
> Compile location: /root/vpp/vpp
> Compiler: GCC 5.4.0 20160609
> Current PID:  5006
>
> Currently My Vm is with 4vcpu and vpp  cpu model is as follow:-
> 1.one main thread
> 2.Three worker threads
>
> I am not able to get more than 4Mpps with this configuration of vpp.When i
> am pumping more than 4Mpps traffic to my VM. I can see this
> counter rx_no_dma_resources: 5628104 getting incremented at the host.As
> there is no eth stats available in sriov configuration for virtual
> functions attached to VM.
>
> Guest vcpus are pin to host physical cpus.
>
> So 4Mpps is the expected number that we can get in this configuration?
>
> Thanks,
> Rahul
>
> ___
> vpp-dev mailing list
> vpp-dev@lists.fd.io
> https://lists.fd.io/mailman/listinfo/vpp-dev
>
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

[vpp-dev] vpp performnace measurement in sriov configuration.

2017-08-10 Thread Rahul Negi
Hi All,
 I am working on an use case where i want to measure the Maximum PPS
handled by vpp in sriov configuration.I have created a virtual machine on a
host having specifications as follows:-
1.RHEL 7.3 installed
2.Intel X540 10 gig NIC attached

I have created a virtual function from one of the interface of 10 gig
NIC(for e.g ens3f0) and attached it to my Virtual Machine.I have installed
ubuntu 16.04 on my Vm. My vpp version running on vm is 17.10.

vpp# show version verbose
Version:  v17.10-rc0~86-g7d4a22c
Compiled by:  root
Compile host: ubuntu
Compile date: Wed Jul 26 18:56:51 EDT 2017
Compile location: /root/vpp/vpp
Compiler: GCC 5.4.0 20160609
Current PID:  5006

Currently My Vm is with 4vcpu and vpp  cpu model is as follow:-
1.one main thread
2.Three worker threads

I am not able to get more than 4Mpps with this configuration of vpp.When i
am pumping more than 4Mpps traffic to my VM. I can see this
counter rx_no_dma_resources: 5628104 getting incremented at the host.As
there is no eth stats available in sriov configuration for virtual
functions attached to VM.

Guest vcpus are pin to host physical cpus.

So 4Mpps is the expected number that we can get in this configuration?

Thanks,
Rahul
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

[vpp-dev] Port range in ACL hash lookup

2017-08-10 Thread Soroosh Sardari
Dear vpp folks,

There is an ambiguity for me in 'multi_acl_match_get_applied_ace_index'
function in 'hash_lookup.c' when port-range check is true.
After finding an ace with matched port range, why we do not assign
curr_index to curr_match_index?
The following code snippet  is the lines I refered above.

u32

curr_index = result_val->applied_entry_index;
129  while ((curr_index != ~0) && !match_portranges
(am,
match, curr_index)) {
130  /* while no match and there are more entries, walk... */
131  applied_hash_ace_entry_t

*pae = vec_elt_at_index

((*applied_hash_aces),curr_index);
132  DBG

("entry %d did not portmatch, advancing to %d", curr_index, pae->
next_applied_entry_index

);
133  curr_index = pae->next_applied_entry_index

;
134  }
135  if (curr_index < curr_match_index) {
136  DBG

("The index %d is the new candidate in portrange matches.", curr_index);
137  curr_match_index = result_val->applied_entry_index

Cheers,
Soroosh
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Re: [vpp-dev] Spurious make test failure (container POC)

2017-08-10 Thread Klement Sekera -X (ksekera - PANTHEON TECHNOLOGIES at Cisco)
The 2 minute timeout is the result of my recent change. The framework
now forks and runs the test in a child process, and if the child process
fails to send a keep-alive (sent when a test case starts), then it's
killed. Otherwise there'd be no way to recover from stuck mutex or
deadlock..

Are you running the extended tests or the stock verify?

Quoting Ed Kern (ejk) (2017-08-10 00:08:19)
>klement,
>ok…ill think about how to do that without too much trouble in its current
>state..
>in the meantime…blowing out the cpu and memory a bit changed the error……
> 
>  21:49:42 create 1k of p2p subifs 
>  OK
>  21:49:42 
> ==
>  21:51:52 21:53:13,610 Timeout while waiting for child test runner process 
> (last test running was `drop rx packet not matching p2p subinterface' in 
> `/tmp/vpp-unittest-P2PEthernetIPV6-GDHSDK')!
>  21:51:52 Killing possible remaining process IDs:  19954 19962 19964
> 
>  21:45:05 PPPoE Test Case
>  21:45:05 ===21:48:13,778 Timeout while 
> waiting for child test runner process (last test running was `drop rx packet 
> not matching p2p subinterface' in `/tmp/vpp-unittest-P2PEthernetIPV6-I0REOQ')!
>  21:47:45 Killing possible remaining process IDs:  20017 20025 20027
> 
>  20:48:46 PPPoE Test Case
>  20:48:46 ===20:51:34,082 Timeout while 
> waiting for child test runner process (last test running was `drop rx packet 
> not matching p2p subinterface' in `/tmp/vpp-unittest-P2PEthernetIPV6-tQ5sP0')!
>  20:51:05 Killing possible remaining process IDs:  19919 19927 19929
> 
>anything new/different/exciting in here?
>Also the memory/cpu expansion (by roughly a third) these failures happen
>in the order of 2/3 minutes as opposed to a 90 leading to timeout failure.
>Since the verifies are still happily chugging along I ASSuME that this
>drop packet check isn’t happening in that suite?
>Ed
> 
>  On Aug 9, 2017, at 1:04 PM, Klement Sekera -X (ksekera - PANTHEON
>  TECHNOLOGIES at Cisco) <[1]ksek...@cisco.com> wrote:
>  Ed,
> 
>  it'd help if you could collect log.txt from a failed run so we could
>  peek under the hood... please see my other email in this thread...
> 
>  Thanks,
>  Klement
> 
>  Quoting Ed Kern (ejk) (2017-08-09 20:48:46)
> 
>  this is not you…or this patch…
>  the make test-debug has had a 90+% failure rate (read not 100%) for
>at
>  least the last 100 builds
>  (far back as my current logs go but will probably blow that out a
>bit now)
>  you hit the one that is seen most often… on that create 1k of p2p
>subifs 
>  the other much less frequent is 
> 
>13:40:24 CGNAT TCP session close initiated from outside network
>  OK
>13:40:24 =Build timed
>out (after 120 minutes). Marking the build as failed.
> 
>  so currently I’m allocating 1 MHz in cpu and 8G in memory for
>verify
>  and also for test-debug runs…
>  Im not obviously getting (as you can see) errors about it running
>out of
>  memory but I wonder if thats possibly whats happening..
>  its easy enough to blow my allocations out a bit and see if that
>makes a
>  difference..
>  If anyone has other ideas to try and happy to give them a shot..
>  appreciate the heads up
>  Ed
> 
>On Aug 9, 2017, at 12:07 PM, Dave Barach (dbarach)
><[1][2]dbar...@cisco.com> wrote:
>Please see [2][3]https://gerrit.fd.io/r/#/c/7927, and 
> 
>
> [3][4]http://jenkins.ejkern.net:8080/job/vpp-test-debug-master-ubuntu1604/1056/console
> 
>The patch in question is highly unlikely to cause this failure...
> 
> 
>14:37:11
>
> ==
>14:37:11 P2P Ethernet tests
>14:37:11
>
> ==
>14:37:11 delete/create p2p
>subif  OK
>14:37:11 create 100k of p2p
>subifs    SKIP
>14:37:11 create 1k of p2p
>subifs  Build
>timed out
>(after 120 minutes). Marking the build as failed.
>16:24:49 $ ssh-agent -k
>16:24:54 unset SSH_AUTH_SOCK;
>16:24:54 unset SSH_AGENT_PID;
>16:24:54 echo Agent pid 84 killed;
>16:25:07 [ssh-agent] Stopped.
>16:25:07 Build