[ovs-dev] [RFC PATCH 2/2] dpif-netdev: Avoid recirculation during vxlan decap.

2018-01-12 Thread Bhanuprakash Bodireddy
CFLAGS="-g -O2" OvS Master(491e05c2) 4.903 Mpps OvS Master + PATCH 5.824 Mpps The performance gain is approximately 15%. Suggested-by: Sugesh Chandran <sugesh.chand...@intel.com> Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@inte

[ovs-dev] [RFC PATCH 1/2] dpif-netdev: Refactor the miniflow extraction logic using PTYPEs.

2018-01-12 Thread Bhanuprakash Bodireddy
and miniflow extraction is performed. This is used by future commit that skips the recirculation on vxlan decapsulation. If PTYPEs isn't supported by a NIC, this patch doesn't do any thing. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dp-packet.h

[ovs-dev] [PATCH] netdev-native-tnl: Add assertion in vxlan_pop_header.

2018-01-12 Thread Bhanuprakash Bodireddy
ed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-native-tnl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c index 9ce8567..fb5eab0 100644 --- a/lib/netdev-native-tnl.c +++ b/lib/netdev-native-tnl.c @@ -

[ovs-dev] [PATCH 4/4] doc: Update configure section with prefetchwt1 details.

2018-01-12 Thread Bhanuprakash Bodireddy
See also: https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341591.html Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- Documentation/intro/install/general.rst | 13 + 1 file changed, 13 insertions(+) diff --git a/Documentation/intro/

[ovs-dev] [PATCH 3/4] util: Use OPCH_NTR type while prefetching packet metadata.

2018-01-12 Thread Bhanuprakash Bodireddy
with *non-temporal* reference so not to pollute the cache. This change seems to positively affect performance. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/packets.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/packets.h

[ovs-dev] [PATCH 2/4] util: Extend ovs_prefetch_range to include prefetch type.

2018-01-12 Thread Bhanuprakash Bodireddy
With ovs_prefetch_range(), large amounts of data can be prefetched in to caches. Prefetch type gives better control over data caching strategy; Meaning where the data should be prefetched(L1/L2/L3) and if the data reference is temporal or non-temporal. Signed-off-by: Bhanuprakash Bodireddy

[ovs-dev] [PATCH 1/4] compiler: Introduce OVS_PREFETCH variants.

2018-01-12 Thread Bhanuprakash Bodireddy
TEMPORAL READ. - __builtin_prefetch(addr, 0, 3) - Prefetch data in to all caches in anticipation of read and that data will be used again soon (HTR - High Temporal Read). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- include/openvswitch/compiler.h

[ovs-dev] [PATCH] doc: Update configure section with popcnt details.

2018-01-12 Thread Bhanuprakash Bodireddy
Popcnt instruction can be used to speedup hash computation on processors with POPCNT support. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- Documentation/intro/install/general.rst | 6 ++ 1 file changed, 6 insertions(+) diff --git a/Documentation/intro/i

[ovs-dev] [PATCH V2] dpif-netdev: Allocate dp_netdev_pmd_thread struct by xzalloc_cacheline.

2018-01-12 Thread Bhanuprakash Bodireddy
= (struct dp_netdev_pmd_thread *) 0x7f39e2365040 Reported-by: Ilya Maximets Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- v1 -> v2 * Allocate memory for non-pmd thread using xzalloc_cacheline(). lib/dpif-netdev.c | 6 +++--- 1 file changed, 3 inserti

[ovs-dev] [PATCH v3] packets: Prefetch the packet metadata in cacheline1.

2018-01-12 Thread Bhanuprakash Bodireddy
nize the pkt_metadata structure.") Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> Acked by: Sugesh Chandran <sugesh.chand...@intel.com> --- v2->v3 * Added Ack from Sugesh. v2->v1 * Include the throughput stats with different CFLAG options. lib/packets.h | 7

[ovs-dev] [PATCH v6 8/8] NEWS: Add keepalive support information in NEWS.

2017-12-08 Thread Bhanuprakash Bodireddy
Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS b/NEWS index 188a075..6fa69ed 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,8 @@ Post-v2.8.0 * Add support for compiling OVS with the latest Linu

[ovs-dev] [PATCH v6 7/8] Documentation: Update DPDK doc with Keepalive feature.

2017-12-08 Thread Bhanuprakash Bodireddy
able performance or latency impact is observed with KA feature enabled. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- Documentation/howto/dpdk.rst | 112 +++ 1 file changed, 112 insertions(+) diff --git a/Documentat

[ovs-dev] [PATCH v6 5/8] bridge: Update keepalive status in OVSDB.

2017-12-08 Thread Bhanuprakash Bodireddy
"pmd64"="ALIVE,2,150679619" "pmd65"="ALIVE,3,150679619""} Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/keepalive.c | 15 ++

[ovs-dev] [PATCH v6 6/8] keepalive: Add support to query keepalive status and statistics.

2017-12-08 Thread Bhanuprakash Bodireddy
-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/keepalive.c | 101 1 file changed, 101 insertions(+) diff --git a/lib/keepalive.c b/lib/keepalive.c index 14ac093..75c0884 100644 --- a/lib/keepalive.c +++

[ovs-dev] [PATCH v6 4/8] keepalive: Retrieve PMD status periodically.

2017-12-08 Thread Bhanuprakash Bodireddy
0332575" "pmd64"="ALIVE,2,150332575" "pmd65"="ALIVE,3,150332575" Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 1 + lib/keepalive.c | 63 +++

[ovs-dev] [PATCH v6 2/8] dpif-netdev: Register packet processing cores to KA framework.

2017-12-08 Thread Bhanuprakash Bodireddy
by marking themselves alive. As long as PMD responds to heartbeats it is considered 'healthy'. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 79 ++ lib/keepalive.c

[ovs-dev] [PATCH RFC 5/5] dpif-netdev: Prefetch the cacheline having the cycle stats.

2017-12-04 Thread Bhanuprakash Bodireddy
Prefetch the cacheline having the cycle stats so that we can speed up the cycles_count_start() and cycles_count_intermediate(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git

[ovs-dev] [PATCH RFC 4/5] util: Use OPCH_NTR type while prefetching packet metadata.

2017-12-04 Thread Bhanuprakash Bodireddy
with non-temporal reference so not to pollute the cache. This change seems to positively affect performance. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/packets.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/packets.h b/lib/pac

[ovs-dev] [PATCH RFC 3/5] util: Extend ovs_prefetch_range to include prefetch type.

2017-12-04 Thread Bhanuprakash Bodireddy
With ovs_prefetch_range(), large amounts of data can be prefetched in to caches. Prefetch type gives better control over data caching strategy; Meaning where the data should be prefetched(L1/L2/L3) and if the data reference is temporal or non-temporal. Signed-off-by: Bhanuprakash Bodireddy

[ovs-dev] [PATCH RFC 2/5] configure: Include -mprefetchwt1 explicitly.

2017-12-04 Thread Bhanuprakash Bodireddy
, %rax[Assembly] prefetchwt1 (%rax) [Testing] $ ./boot.sh $ ./configure checking target hint for cgcc... x86_64 checking whether gcc accepts -mprefetchwt1... yes $ make -j Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- configure.ac |

[ovs-dev] [PATCH RFC 1/5] compiler: Introduce OVS_PREFETCH variants.

2017-12-04 Thread Bhanuprakash Bodireddy
TEMPORAL READ. - __builtin_prefetch(addr, 0, 3) - Prefetch data in to all caches in anticipation of read and that data will be used again soon (HTR - High Temporal Read). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- include/openvswitch/compiler.

[ovs-dev] [PATCH v2] packets: Prefetch the packet metadata in cacheline1.

2017-12-04 Thread Bhanuprakash Bodireddy
fc16c0 ("Reorganize the pkt_metadata structure.") Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- v2->v1 * Include the throughput stats with different CFLAG options. lib/packets.h | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --

[ovs-dev] [PATCH v3] util: Add high resolution sleep support.

2017-11-28 Thread Bhanuprakash Bodireddy
This commit introduces xnanosleep() for the threads needing high resolution sleep timeouts. usleep() that provides microsecond granularity is deprecated and threads wanting sub-second(ms,us,ns) granularity can use this implementation. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bod

[ovs-dev] [PATCH] dpif-netdev: Allocate dp_netdev_pmd_thread struct by xzalloc_cacheline.

2017-11-26 Thread Bhanuprakash Bodireddy
$8 = (struct hmap *) 0x7f39e28051c0 (gdb) p >tnl_port_cache $9 = (struct hmap *) 0x7f39e2805200 (gdb) p >stats_zero $10 = (unsigned long long (*)[5]) 0x7f39e2805240 Reported-by: Ilya Maximets <i.maxim...@samsung.com> Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire..

[ovs-dev] [PATCH] packets: Prefetch the packet metadata in cacheline1.

2017-11-17 Thread Bhanuprakash Bodireddy
cacheline1, 9% performance improvement is observed. CC: Ben Pfaff <b...@ovn.org> Fixes: 99fc16c0 ("Reorganize the pkt_metadata structure.") Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/packets.h | 7 ++- 1 file changed, 6 insertions(+

[ovs-dev] [PATCH v2 2/2] util: Add high resolution sleep support.

2017-11-14 Thread Bhanuprakash Bodireddy
abriel Serdean <aserd...@ovn.org> CC: Ben Pfaff <b...@ovn.org> Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/timeval.c | 19 +++ lib/timeval.h | 1 + lib/util.c| 35 +++ lib/util.h| 1 + 4 file

[ovs-dev] [PATCH v2 1/2] timeval: Introduce macros to convert timespec and timeval.

2017-11-14 Thread Bhanuprakash Bodireddy
This commit replaces the numbers with MSEC_PER_SEC, NSEC_PER_SEC and USEC_PER_MSEC macros when dealing with timespec and timeval. This commit doesn't change functionality. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/timeval.c

[ovs-dev] [PATCH 2/2] system-stats: Include core number in the process stats.

2017-11-08 Thread Bhanuprakash Bodireddy
t;, load_average="1.30,1.04,1.13", memory="65861460,27469176,3815252,1999868,0", process_ovs-vswitchd="4686020,17360,127380,0,148406,148406,3", process_ovsdb-server="48096,5212,30,0,148496,148496,4"} eg: processvsz , rss , cputime, crashes, booted, upt

[ovs-dev] [PATCH 1/2] process: Extend get_process_info() for additional fields.

2017-11-08 Thread Bhanuprakash Bodireddy
assignment suppression and length modifier together in gnu_scanf format [-Werror=format=]. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/process.c | 43 +++ lib/process.h | 2 ++ 2 files changed, 25 insertions(+), 20 de

[ovs-dev] [PATCH 7/7] pcap-file: Use time macros.

2017-11-08 Thread Bhanuprakash Bodireddy
Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/pcap-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pcap-file.c b/lib/pcap-file.c index 981d56d..60280fb 100644 --- a/lib/pcap-file.c +++ b/lib/pcap-file.c @@ -174,7

[ovs-dev] [PATCH 6/7] mac-learning: Use MSEC_PER_SEC Macro.

2017-11-08 Thread Bhanuprakash Bodireddy
Replace 1000 value with MSEC_PER_SEC macro when converting seconds to ms. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/mac-learning.c | 2 +- lib/mcast-snooping.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/mac-learni

[ovs-dev] [PATCH 5/7] ofproto: Use time macros.

2017-11-08 Thread Bhanuprakash Bodireddy
This commit replaces the numbers with appropriate macros. Also use time_wall_usec() in ipfix_now(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- ofproto/ofproto-dpif-ipfix.c | 12 ++-- ofproto/ofproto-dpif-sflow.c | 2 +- 2 files changed, 7 inse

[ovs-dev] [PATCH 4/7] util: Use MSEC_PER_SEC macro.

2017-11-08 Thread Bhanuprakash Bodireddy
Replace 1000 value with MSEC_PER_SEC macro when converting seconds to ms. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/util.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/util.c b/lib/util.c index 46b5691..e2423fc

[ovs-dev] [PATCH 3/7] util: High resolution sleep support for windows.

2017-11-08 Thread Bhanuprakash Bodireddy
This commit implements xnanosleep() for the threads needing high resolution sleep timeouts in windows. CC: Alin Gabriel Serdean <aserd...@ovn.org> CC: Aaron Conole <acon...@redhat.com> Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --

[ovs-dev] [PATCH 2/7] util: Add high resolution sleep support.

2017-11-08 Thread Bhanuprakash Bodireddy
This commit introduces xnanosleep() for the threads needing high resolution sleep timeouts. usleep() that provides microsecond granularity is deprecated and all threads that needs ms,us,ns granularity can use this implementation. CC: Ben Pfaff <b...@ovn.org> Signed-off-by: Bhanuprakash Bod

[ovs-dev] [PATCH 1/7] timeval: Introduce macros to convert timespec and timeval.

2017-11-08 Thread Bhanuprakash Bodireddy
This commit replaces the numbers with MSEC_PER_SEC, NSEC_PER_SEC and USEC_PER_MSEC macros when dealing with timespec and timeval. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/timeval.c | 29 - lib/timeval.h | 7 +++ 2

[ovs-dev] [PATCH 0/7] Introduce high resolution sleep support.

2017-11-08 Thread Bhanuprakash Bodireddy
This patchset introduces high resolution sleep support for linux and windows. Also time macros are introduced to replace the numbers with meaningful names. Bhanuprakash Bodireddy (7): timeval: Introduce macros to convert timespec and timeval. util: Add high resolution sleep support. util

[ovs-dev] [PATCH 7/7] ovsdb: Remove break after OVS_NOT_REACHED.

2017-10-01 Thread Bhanuprakash Bodireddy
The break statement would never be executed as OVS_NOT_REACHED() internally invokes abort() and causes process termination. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- ovsdb/replication.c | 1 - 1 file changed, 1 deletion(-) diff --git a/ovsdb/replicati

[ovs-dev] [PATCH 4/7] netdev-dpdk: Refactor netdev_dpdk structure.

2017-10-01 Thread Bhanuprakash Bodireddy
cacheline1; struct ovs_mutex; 48 struct dpdk_mp *dpdk_mp;8 ... Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-dpdk.c | 158 +- 1 file chang

[ovs-dev] [PATCH 5/7] ofproto: Remove break after OVS_NOT_REACHED.

2017-10-01 Thread Bhanuprakash Bodireddy
The break statement would never be executed as OVS_NOT_REACHED() internally invokes abort() and causes process termination. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- ofproto/ofproto-dpif-ipfix.c | 1 - ofproto/ofproto-dpif-xlate.c | 2 -- 2 files chan

[ovs-dev] [PATCH 6/7] ofp-actions: Remove break after OVS_NOT_REACHED.

2017-10-01 Thread Bhanuprakash Bodireddy
The break statement would never be executed as OVS_NOT_REACHED() internally invokes abort() and causes process termination. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/ofp-actions.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/ofp-actions.c

[ovs-dev] [PATCH 3/7] dpif_netdev: Refactor dp_netdev_pmd_thread structure.

2017-10-01 Thread Bhanuprakash Bodireddy
bytes### struct ovs_mutex port_mutex; 48 This change also improve the performance marginally. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 160 +++--- 1 file chang

[ovs-dev] [PATCH 2/7] cmap: Use PADDED_MEMBERS_CACHELINE_MARKER in cmap_impl.

2017-10-01 Thread Bhanuprakash Bodireddy
Instead of explicitly adding the pad bytes to force the structure an exact multiple of cacheline size, let the macro do the job. This way the pad bytes will be auto adjusted when the new members get introduced in to the structure. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bod

[ovs-dev] [PATCH 1/7] ccmap: Use PADDED_MEMBERS macro in ccmap_impl structure.

2017-10-01 Thread Bhanuprakash Bodireddy
Instead of explicitly adding the pad bytes to force the structure an exact multiple of cacheline size, let the PADDED_MEMBERS macro do the job. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/ccmap.c | 19 +-- 1 file changed, 9 insertions(

[ovs-dev] [PATCH v2 11/12] dpif-netdev: Remove 'cnt' in dp_netdev_input__().

2017-09-20 Thread Bhanuprakash Bodireddy
There is little use of 'cnt' variable in dp_netdev_input__(). Get rid of it and use dp_packet_batch_size() to initialize PKT_ARRAY_SIZE. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)

[ovs-dev] [PATCH v2 10/12] odp-execute: Use const qualifer for batch size.

2017-09-20 Thread Bhanuprakash Bodireddy
It is recommended to use const qualifer for 'num' that tracks the packet batch count. This way 'num' can't be modified by iterator. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/odp-execute.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff

[ovs-dev] [PATCH v2 12/12] dpif-netdev: Fix comments for pmd_load_cached_ports.

2017-09-20 Thread Bhanuprakash Bodireddy
Commit 57eebbb4c315 replaces thread local 'pmd->port_cache' with 'pmd->tnl_port_cache' and 'pmd->send_port_cache' maps. Update the comments accordingly. Fixes: 57eebbb4c315 ("Don't try to output on a device without txqs") Signed-off-by: Bhanuprakash Bodireddy <bhanupraka

[ovs-dev] [PATCH v2 09/12] netdev-dpdk: Minor cleanup of netdev_dpdk_send__.

2017-09-20 Thread Bhanuprakash Bodireddy
'tx_cnt' packets gets transmitted on the respective 'qid'. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-dpdk.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 60887e5..3ff79c1

[ovs-dev] [PATCH v2 05/12] dpif-netdev: Use DP_PACKET_BATCH_FOR_EACH in dp_netdev_run_meter.

2017-09-20 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in dp_netdev_run_meter(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 15 +++ 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index c

[ovs-dev] [PATCH v2 08/12] netdev-dpdk: Cleanup dpdk_do_tx_copy.

2017-09-20 Thread Bhanuprakash Bodireddy
Cleanup dpdk_do_tx_copy(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-dpdk.c | 22 ++ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 60ec528..60887e5 100644 ---

[ovs-dev] [PATCH v2 04/12] netdev-bsd: Use DP_PACKET_BATCH_FOR_EACH in netdev_bsd_send.

2017-09-20 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in netdev_bsd_send(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-bsd.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/netdev-bsd.c b/lib/netdev-bsd.c index 8a4cdb3..96ba71c

[ovs-dev] [PATCH v2 03/12] netdev-dpdk: Use DP_PACKET_BATCH_FOR_EACH in netdev_dpdk_ring_send

2017-09-20 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in netdev_dpdk_ring_send(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-dpdk.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 648d719..6

[ovs-dev] [PATCH v2 02/12] netdev-linux: Use DP_PACKET_BATCH_FOR_EACH in netdev_linux_tap_batch_send.

2017-09-20 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in netdev_linux_tap_batch_send(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-linux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c index 2

[ovs-dev] [PATCH v2 01/12] conntrack: Use DP_PACKET_BATCH_FOR_EACH macro.

2017-09-20 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in conntrack_execute(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/conntrack.c | 13 ++--- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/conntrack.c b/lib/conntrack.c index 419cb1d..0

[ovs-dev] [PATCH v2 00/12] Use packet batch macro and APIs.

2017-09-20 Thread Bhanuprakash Bodireddy
5 patches - Code Cleanup 1 patch - Fix comment. Bhanuprakash Bodireddy (12): conntrack: Use DP_PACKET_BATCH_FOR_EACH macro. netdev-linux: Use DP_PACKET_BATCH_FOR_EACH in netdev_linux_tap_batch_send. netdev-dpdk: Use DP_PACKET_BATCH_FOR_EACH in netdev_dpdk_ring_send netdev-bsd:

[ovs-dev] [PATCH 10/10] dpif-netdev: Remove 'cnt' in dp_netdev_input__().

2017-09-19 Thread Bhanuprakash Bodireddy
There is little use of 'cnt' variable in dp_netdev_input__(). Get rid of it and use dp_packet_batch_size() to initialize PKT_ARRAY_SIZE. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)

[ovs-dev] [PATCH 09/10] dpif-netdev: Use DP_PACKET_BATCH_FOR_EACH in fast_path_processing.

2017-09-19 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in fast_path_processing(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 15 +++ 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 5

[ovs-dev] [PATCH 08/10] dpif-netdev: Use DP_PACKET_BATCH_FOR_EACH in dp_netdev_run_meter.

2017-09-19 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in dp_netdev_run_meter(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 15 +++ 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index c

[ovs-dev] [PATCH 07/10] odp-execute: Use const qualifer for batch size.

2017-09-19 Thread Bhanuprakash Bodireddy
It is recommended to use const qualifer for 'num' that tracks the packet batch count. This way 'num' can't be modified by iterator. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/odp-execute.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff

[ovs-dev] [PATCH 06/10] netdev-bsd: Use DP_PACKET_BATCH_FOR_EACH in netdev_bsd_send.

2017-09-19 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in netdev_bsd_send(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-bsd.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/netdev-bsd.c b/lib/netdev-bsd.c index 8a4cdb3..96ba71c

[ovs-dev] [PATCH 05/10] netdev-dpdk: Use DP_PACKET_BATCH_FOR_EACH in netdev_dpdk_ring_send

2017-09-19 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in netdev_dpdk_ring_send(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-dpdk.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 4e75bf1..3

[ovs-dev] [PATCH 04/10] netdev-dpdk: Minor cleanup of netdev_dpdk_send__.

2017-09-19 Thread Bhanuprakash Bodireddy
'tx_cnt' packets gets transmitted on the respective 'qid'. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-dpdk.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 2078c94..4e75bf1

[ovs-dev] [PATCH 03/10] netdev-dpdk: Cleanup dpdk_do_tx_copy.

2017-09-19 Thread Bhanuprakash Bodireddy
Clean up dpdk_do_tx_copy() Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-dpdk.c | 22 ++ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 648d719..2078c94 100644 ---

[ovs-dev] [PATCH 02/10] netdev-linux: Use DP_PACKET_BATCH_FOR_EACH in netdev_linux_tap_batch_send.

2017-09-19 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in netdev_linux_tap_batch_send(). Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-linux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c index a

[ovs-dev] [PATCH 01/10] netdev-linux: Clean up netdev_linux_sock_batch_send().

2017-09-19 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro and dp_packet_batch_size() API in netdev_linux_sock_batch_send(). No change in functionality. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-linux.c | 13 +++-- 1 file changed, 7 insertions(+), 6 del

[ovs-dev] [PATCH 00/10] Use DP_PACKET_BATCH_FOR_EACH macro.

2017-09-19 Thread Bhanuprakash Bodireddy
is a simple and straightforward set of changes aimed at using DP_PACKET_BATCH_FOR_EACH macro at all appropriate places. Also minor code cleanup is done to improve readability of the code. No functionality changes and no performance impact with this series. Bhanuprakash Bodireddy (10): netdev

[ovs-dev] [PATCH v5 10/10] NEWS: Add keepalive support information in NEWS.

2017-09-15 Thread Bhanuprakash Bodireddy
Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS b/NEWS index 6a5d2bf..7f5ff78 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,8 @@ Post-v2.8.0 - OVN: * The "requested-chassis" opti

[ovs-dev] [PATCH v5 09/10] Documentation: Update DPDK doc with Keepalive feature.

2017-09-15 Thread Bhanuprakash Bodireddy
No noticeable performance or latency impact is observed with KA feature enabled. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- Documentation/howto/dpdk.rst | 113 +++ 1 file changed, 113 insertions(+) dif

[ovs-dev] [PATCH v5 08/10] keepalive: Add support to query keepalive status and statistics.

2017-09-15 Thread Bhanuprakash Bodireddy
-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/keepalive.c | 103 1 file changed, 103 insertions(+) diff --git a/lib/keepalive.c b/lib/keepalive.c index b140d21..9db1389 100644 --- a/lib/keepalive.c +++

[ovs-dev] [PATCH v5 07/10] bridge: Update keepalive status in OVSDB.

2017-09-15 Thread Bhanuprakash Bodireddy
"pmd64"="ALIVE,2,150679619" "pmd65"="ALIVE,3,150679619""} Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/keepalive.c | 15 ++

[ovs-dev] [PATCH v5 06/10] keepalive: Retrieve PMD status periodically.

2017-09-15 Thread Bhanuprakash Bodireddy
0332575" "pmd64"="ALIVE,2,150332575" "pmd65"="ALIVE,3,150332575" Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 1 + lib/keepalive.c | 66 +++

[ovs-dev] [PATCH v5 05/10] dpif-netdev: Enable heartbeats for DPDK datapath.

2017-09-15 Thread Bhanuprakash Bodireddy
the port. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 15 +-- lib/keepalive.c | 44 lib/keepalive.h | 1 + 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/li

[ovs-dev] [PATCH v5 04/10] dpif-netdev: Register packet processing cores to KA framework.

2017-09-15 Thread Bhanuprakash Bodireddy
by marking themselves alive. As long as PMD responds to heartbeats it is considered 'healthy'. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 79 ++ lib/keepalive.c

[ovs-dev] [PATCH v5 03/10] util: Add high resolution sleep support.

2017-09-15 Thread Bhanuprakash Bodireddy
This commit introduces xnanosleep() for the threads needing high resolution sleep timeouts. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/timeval.c | 2 +- lib/timeval.h | 1 + lib/util.c| 19 +++ lib/util.h| 1 + 4 files chang

[ovs-dev] [PATCH v5 02/10] Keepalive: Add initial keepalive support.

2017-09-15 Thread Bhanuprakash Bodireddy
K datapath and only status of PMD threads is reported. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/automake.mk| 2 + lib/keepalive.c| 145 + lib/keepalive.h

[ovs-dev] [PATCH v5 01/10] process: Extend get_process_info() for additional fields.

2017-09-15 Thread Bhanuprakash Bodireddy
assignment suppression and length modifier together in gnu_scanf format [-Werror=format=]. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/process.c | 43 +++ lib/process.h | 2 ++ 2 files changed, 25 insertions(+), 20 de

[ovs-dev] [PATCH v5 00/10] Add OVS DPDK keep-alive functionality.

2017-09-15 Thread Bhanuprakash Bodireddy
l keepalive/* hang issue when KA disabled. * Fixed memory leaks with appctl commands for keepalive/pmd-health-show, pmd-xstats-show. * Refactor code and fixed APIs dealing with PMD health monitoring. Bhanuprakash Bodireddy (10): process: Extend get_process_info() for additional fields. Keepali

[ovs-dev] [PATCH 2/2] dpif-netdev: Fix comments for pmd_load_cached_ports.

2017-09-12 Thread Bhanuprakash Bodireddy
Commit 57eebbb4c315 replaces thread local 'pmd->port_cache' with 'pmd->tnl_port_cache' and 'pmd->send_port_cache' maps. Update the comments accordingly. Fixes: 57eebbb4c315 ("Don't try to output on a device without txqs") Signed-off-by: Bhanuprakash Bodireddy <bhanupraka

[ovs-dev] [PATCH 1/2] conntrack: Use DP_PACKET_BATCH_FOR_EACH macro.

2017-09-12 Thread Bhanuprakash Bodireddy
Use DP_PACKET_BATCH_FOR_EACH macro in conntrack_execute(). No change in functionality. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/conntrack.c | 13 ++--- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/conntrack.c b/lib/connt

[ovs-dev] [PATCH 13/13] ofproto-dpif-xlate: Fix dead assignment reported by clang.

2017-09-08 Thread Bhanuprakash Bodireddy
Clang reports that value stored in to ac_offset is never read in the function. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- ofproto/ofproto-dpif-xlate.c | 1 - 1 file changed, 1 deletion(-) diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-x

[ovs-dev] [PATCH 12/13] conntrack: Fix dead assignment reported by clang.

2017-09-08 Thread Bhanuprakash Bodireddy
Clang reports that value stored to ftp, seq_skew_dir never read inside the function. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/conntrack.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/conntrack.c b/lib/conntrack.c

[ovs-dev] [PATCH 11/13] ofproto: Reorder elements in ofproto_bundle_settings structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in ofproto_bundle_settings structure, sum holes and pad bytes can be reduced. Before: structure size: 96, sum holes: 13, pad bytes: 7, cachelines:2 After : structure size: 80, sum holes: 4, pad bytes: 0, cachelines:2 Signed-off-by: Bhanuprakash Bodireddy

[ovs-dev] [PATCH 10/13] ofproto: Reorder elements in ofproto_ipfix_flow_exporter_options structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in ofproto_ipfix_flow_exporter_options structure, sum holes can be reduced significantly. Before: structure size: 64, sum holes: 11, cachelines:1 After : structure size: 56, sum holes: 3, cachelines:1 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.

[ovs-dev] [PATCH 08/13] dpif-netdev: Reorder elements in dp_netdev_rxq structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in dp_netdev_rxq structure, pad bytes and a hole can be removed. Before: structure size: 104, sum holes: 1, sum padbytes:4, cachelines:2 After : structure size: 96, sum holes: 0, sum padbytes:0, cachelines:2 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bod

[ovs-dev] [PATCH 09/13] dpif: Reorder elements in dpif_flow_put structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in dpif_flow_put structure, holes can be removed. Before: structure size: 80, sum holes: 8, cachelines:2 After : structure size: 72, sum holes: 0, cachelines:2 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif.h | 2 +- 1 file c

[ovs-dev] [PATCH 07/13] netdev-provider: Reorder elements in netdev structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in netdev structure, holes can be removed. Before: structure size: 88, sum holes: 10, cachelines:2 After : structure size: 80, sum holes: 2, cachelines:2 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/netdev-provider.

[ovs-dev] [PATCH 05/13] netdev: Reorder elements in netdev_tunnel_config structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in netdev_tunnel_config structure, sum holes and pad bytes can be reduced. Before: structure size: 96, sum holes: 17, pad bytes: 4, cachelines:2 After : structure size: 80, sum holes: 5, pad bytes: 0, cachelines:2 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bod

[ovs-dev] [PATCH 04/13] ct-dpif: Reorder elements in ct_dpif_entry structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in ct_dpif_entry structure, sum holes and pad bytes can be reduced. Before: structure size: 232, sum holes: 5, pad bytes: 4, cachelines:4 After : structure size: 224, sum holes: 1, pad bytes: 0, cachelines:4 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bod

[ovs-dev] [PATCH 03/13] tun-metadata: Reorder elements in tun_meta_entry structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in tun_meta_entry structure, sum holes and pad bytes can be reduced there by reducing the tun_table size. Before: structure size: 56, sum holes: 4, pad bytes: 7 cachelines:1 After : structure size: 48, sum holes: 0, pad bytes: 3, cachelines:1 Signed-off-by: Bhanuprakash

[ovs-dev] [PATCH 02/13] netdev-dummy: Reorder elements in dummy_packet_stream structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in dummy_packet_stream structure, sum holes can be reduced, thus saving a cache line. Before: structure size: 784, sum holes: 56, cachelines:13 After : structure size: 768, sum holes: 40, cachelines:12 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.

[ovs-dev] [PATCH 01/13] bond: Reorder elements in bond_slave structure.

2017-09-08 Thread Bhanuprakash Bodireddy
By reordering elements in bond_slave structure, holes can be removed and saves a cache line. Before: structure size: 136, sum holes: 10, cachelines:3 After : structure size: 128, sum holes: 2, cachelines:2 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- o

[ovs-dev] [PATCH 00/13] Rearrange structure members for memory efficiency.

2017-09-08 Thread Bhanuprakash Bodireddy
that no performance impact is observed with the new ordering. Bhanuprakash Bodireddy (13): bond: Reorder elements in bond_slave structure. netdev-dummy: Reorder elements in dummy_packet_stream structure. tun-metadata: Reorder elements in tun_meta_entry structure. ct-dpif: Reorder elements

[ovs-dev] [PATCH v4 7/7] keepalive: Add support to query keepalive status and statistics.

2017-08-22 Thread Bhanuprakash Bodireddy
PMDCORESTATE LAST SEEN TIMESTAMP(UTC) pmd620 ALIVE 21 Aug 2017 16:29:31 pmd631 ALIVE 21 Aug 2017 16:29:31 pmd642 ALIVE 21 Aug 2017 16:29:31 pmd653 GONE21 Aug 2017 16:26:31 Signed-off-by: Bhanuprakash Bodireddy

[ovs-dev] [PATCH v4 5/7] keepalive: Retrieve PMD status periodically.

2017-08-22 Thread Bhanuprakash Bodireddy
0332575" "pmd64"="ALIVE,2,150332575" "pmd65"="ALIVE,3,150332575" Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 1 + lib/keepalive.c | 69 +++

[ovs-dev] [PATCH v4 6/7] bridge: Update keepalive status in OVSDB.

2017-08-22 Thread Bhanuprakash Bodireddy
"pmd64"="ALIVE,2,150679619" "pmd65"="ALIVE,3,150679619""} Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/keepalive.c | 15 ++

[ovs-dev] [PATCH v4 4/7] dpif-netdev: Enable heartbeats for DPDK datapath.

2017-08-22 Thread Bhanuprakash Bodireddy
the port. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 9 - lib/keepalive.c | 41 + lib/keepalive.h | 1 + 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/lib/dpif-netd

[ovs-dev] [PATCH v4 3/7] dpif-netdev: Register packet processing cores to KA framework.

2017-08-22 Thread Bhanuprakash Bodireddy
by marking themselves alive. As long as PMD responds to heartbeats it is considered 'healthy'. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/dpif-netdev.c | 70 + lib/keepalive.c | 153 ++---

[ovs-dev] [PATCH v4 2/7] Keepalive: Add initial keepalive support.

2017-08-22 Thread Bhanuprakash Bodireddy
en_vSwitch . \ other_config:keepalive-interval="5000" Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/automake.mk| 2 + lib/keepalive.c| 183 + lib/keepalive.h| 87 ++

[ovs-dev] [PATCH v4 1/7] process: Extend get_process_info() for additional fields.

2017-08-22 Thread Bhanuprakash Bodireddy
assignment suppression and length modifier together in gnu_scanf format [-Werror=format=]. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- lib/process.c | 43 +++ lib/process.h | 2 ++ 2 files changed, 25 insertions(+), 20 de

[ovs-dev] [PATCH v4 0/7] Add OVS DPDK keep-alive functionality.

2017-08-22 Thread Bhanuprakash Bodireddy
ts to later commit where the actual implementation is done(suggested by Ben). * Fix ovs-appctl keepalive/* hang issue when KA disabled. * Fixed memory leaks with appctl commands for keepalive/pmd-health-show, pmd-xstats-show. * Refactor code and fixed APIs dealing with PMD health monitoring.

  1   2   3   >