upcall functions, eliminating the need for handler threads
for datapaths of type 'netdev'.
Signed-off-by: Ryan Wilson
---
v2: Fix race condition found during perf test
v3: Addressed Daniele's comments
v4: Addressed Ben's style comments, added packet batching
v5: Rebase
v
act that exec_upcalls calls dpif_print_packet() is a bit weird,
> feels like a layering violation. I'm conflicted though, what do you
> think?
>
>
Not sure why this would be since we call dpif_recv in ofproto-upcall.
> Ethan
>
> On Sun, Jul 20, 2014 at 3:37 PM, Ryan Wils
upcall functions, eliminating the need for handler threads
for datapaths of type 'netdev'.
Signed-off-by: Ryan Wilson
---
v2: Fix race condition found during perf test
v3: Addressed Daniele's comments
v4: Addressed Ben's style comments, added packet batching
v5: Rebase
v
This fixes valgrind errors.
Signed-off-by: Ryan Wilson
---
ovsdb/ovsdb-server.c | 25 -
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c
index a85a672..0a1be0f 100644
--- a/ovsdb/ovsdb-server.c
+++ b/ovsdb/ovsdb
upcall functions, eliminating the need for handler threads
for datapaths of type 'netdev'.
Signed-off-by: Ryan Wilson
---
v2: Fix race condition found during perf test
v3: Addressed Daniele's comments
v4: Addressed Ben's style comments, added packet batching
v5: Rebase
-
you decide to commit it).
Ryan
On 6/30/14 11:15 AM, "Pravin Shelar" wrote:
>On Thu, Jun 26, 2014 at 6:16 PM, Ryan Wilson wrote:
>> Since dropped packets due to large packet size or lack of memory
>> are unlikely, it is best to add OVS_UNLIKELY annotations to these
>&
GTM
>
>Daniele
>
>On Jun 26, 2014, at 6:16 PM, Ryan Wilson wrote:
>
>> This patch refactors dpdk_queue_flush() to reuse code in
>> dpdk_queue_pkts().
>>
>> Signed-off-by: Ryan Wilson
>> ---
>> lib/netdev-dpdk.c | 37
Sorry about this, I should've been more mindful of that. Please ignore
this patch.
Ryan
On 6/27/14 2:04 PM, "Ben Pfaff" wrote:
>On Fri, Jun 27, 2014 at 1:58 PM, Pravin Shelar wrote:
>> On Thu, Jun 26, 2014 at 6:16 PM, Ryan Wilson wrote:
>>> Per style requirem
tests.
Ryan
From: Ben Pfaff mailto:b...@nicira.com>>
Date: Thursday, June 26, 2014 6:26 PM
To: Ryan Wilson mailto:wr...@vmware.com>>
Cc: Ryan Wilson mailto:wr...@nicira.com>>,
"dev@openvswitch.org<mailto:dev@openvswitch.org>"
mailto:dev@openvswitch.org>>
annotations for code consistency as well.
Ryan
From: Ben Pfaff mailto:b...@nicira.com>>
Date: Thursday, June 26, 2014 6:20 PM
To: Ryan Wilson mailto:wr...@nicira.com>>
Cc: "dev@openvswitch.org<mailto:dev@openvswitch.org>"
mailto:dev@openvswitch.org>>
Subject: Re: [o
This patch refactors dpdk_queue_flush() to reuse code in
dpdk_queue_pkts().
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c | 37 -
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 72add87..084e8cd
Since dropped packets due to large packet size or lack of memory
are unlikely, it is best to add OVS_UNLIKELY annotations to these
conditions.
With DPDK fast path forwarding test, this increased throughtput
from 4.12 to 4.16 million packets per second.
Signed-off-by: Ryan Wilson
---
lib/netdev
when
multiple packets are dropped in dpdk_do_tx_copy().
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c | 21 -
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 6e1d293..dfa7d77 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/n
The current timestamp should be set every time the queue is flushed.
Thus, if DRAIN_TSC timer cycles have passed since the last timestamp,
the send queue should be flushed again.
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c |8 ++--
1 file changed, 2 insertions(+), 6 deletions
Per style requirements, functions local to a module should not be
inlined.
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index dfa7d77..0aee14e 100644
--- a/lib/netdev-dpdk.c
+++ b
fail
>> and packets which succeeded to allocate memory with rte_pktmbuf_alloc()
>> would not be sent and leak memory.
>>
>> This patch also adds OVS_UNLIKELY annotations.
>
>These sound like three separate patches.
>
>How much if at all does each t
would not be sent and leak memory.
This patch also adds OVS_UNLIKELY annotations.
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c | 25 ++---
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 6e1d293..03f1e02 100644
The current timestamp should be set every time the queue is flushed.
Thus, if DRAIN_TSC timer cycles have passed since the last timestamp,
the send queue should be flushed again.
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c |8 ++--
1 file changed, 2 insertions(+), 6 deletions
This patch refactors dpdk_queue_flush() to reuse code in
dpdk_queue_pkts().
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c | 37 -
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 72add87..084e8cd
miniflow_destroy() needs to be called after using miniflow_init().
Otherwise, if the miniflow mallocs data, then a memory leak may
occur.
Found by inspection.
Signed-off-by: Ryan Wilson
---
lib/dpif-netdev.c |1 +
1 file changed, 1 insertion(+)
diff --git a/lib/dpif-netdev.c b/lib/dpif
>
>
> Thanks Ryan!
>
> I folded in this change to ensure that the caller could specify any
> 'max_flows' that it likes. It doesn't make sense for the caller to
> have to be aware of the implementation's limitations:
>
>
I was debating between either using an assert or using the min of max_flows
an
x27;s an obvious solution here I'm not seeing.
Ryan
On 6/24/14 2:14 PM, "Ben Pfaff" wrote:
>On Tue, Jun 24, 2014 at 01:41:13PM -0700, Ryan Wilson wrote:
>> On Tue, Jun 24, 2014 at 8:44 AM, Ben Pfaff wrote:
>> > I'm surprised that dpif_netdev_disable_upcall(
upcall functions, eliminating the need for handler threads
for datapaths of type 'netdev'.
Signed-off-by: Ryan Wilson
---
v2: Fix race condition found during perf test
v3: Addressed Daniele's comments
v4: Addressed Ben's style comments, added packet batching
-
Just one comment below. Otherwise, all other issues will be addressed in
the next patch.
Thanks!
On Tue, Jun 24, 2014 at 8:44 AM, Ben Pfaff wrote:
> On Wed, Jun 18, 2014 at 11:07:12AM -0700, Ryan Wilson wrote:
> > Typically, kernel datapath threads send upcalls to userspace where
&g
Sent out a new version of the patch with the correct commit message and
signed-off-bys.
Ryan
On 6/23/14 1:57 PM, "Pravin Shelar" wrote:
>I like this better, If you send me signed off line I will merge it.
>
>
>On Thu, Jun 19, 2014 at 5:27 PM, Ryan Wilson 76511
>wrot
title_init().
Signed-off-by: Daniele Di Proietto
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c | 10 --
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index fbdb6b3..fb8d953 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
dev'.
Signed-off-by: Ryan Wilson
---
v2: Addressed Joe's comments, split into 2 patches
v3: Optimized patch by allocating memory in 1 malloc call instead of 3,
reducing time spent in locked state. Need to only use 1 patch now.
v4: Minor fixes.
Ok just kidding, I actually just sent a v3 of the patch since the other
optimizations may take me a bit longer. Sorry for the spam, have a good weekend!
Ryan
From: Ryan Wilson mailto:wr...@vmware.com>>
Date: Friday, June 20, 2014 4:15 PM
To: Ryan Wilson mailto:wr...@nicira.com>>,
dev'.
Signed-off-by: Ryan Wilson
---
v2: Addressed Joe's comments, split into 2 patches
v3: Optimized patch by allocating memory on stack, reducing time
spent in locked state.
---
lib/dpif-netdev.c | 106 +
1 file changed, 59 insertions(+
Hey Joe,
Not sure if you were looking at this patch, but I believe I found a more
efficient way to do this. I will likely send this out as a larger series of
revalidator optimizations for dpif-netdev.
Ryan
From: Ryan Wilson mailto:wr...@nicira.com>>
Date: Thursday, June 19, 2014 5:49
This is needed to add flow dump batching to dpif-netdev, specifically
for malloc-ing 'max_flows' key and mask buffers.
Signed-off-by: Ryan Wilson
---
v2: Addressed Joe's comments, split into 2 patches
---
lib/dpif-linux.c |4 ++--
lib/dpif-netdev.c |
dev'.
Signed-off-by: Ryan Wilson
---
v2: Addressed Joe's comments, split into 2 patches
---
lib/dpif-netdev.c | 82 +
1 file changed, 45 insertions(+), 37 deletions(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 805af9a.
e just assert that it is <= thread_->max_flows.
>
> The comment above dpif_flow_dump_next() may also need to be updated.
>
Sure I'll add the max_flows argument back to dpif_flow_dump_next() and add
an assert. I shouldn't need to change the dpif_flow_dump_next() comment
though b
196,10 @@ dpdk_init(int argc, char **argv)
rte_memzone_dump();
rte_eal_init_ret = 0;
-return result;
+if (argc > result)
+ argv[result] = argv[0];
+
+return result + 1;
}
void
From: Daniele Di Proietto
mailto:ddiproie...@vmware.com>>
Date: Thursday,
the code
always skips by default the first of the remaining arguments. With DPDK,
its "--" but without DPDK, its the program name. So dpdk_init() actually
does skip the program name, I believe.
Anyways it doesn't really matter as long as this works.
Ryan
On 6/19/14 2:14 PM, "Pr
e itself */
+return result + 1;
}
void
Otherwise, LGTM.
Acked-by: Ryan Wilson
Can someone else review this and if they have no qualms, push it? This is
necessary for DPDK to work properly.
On 6/16/14 9:46 AM, "Daniele Di Proietto" wrote:
>rte_eal_init() returns the number of p
dev'.
Signed-off-by: Ryan Wilson
---
lib/dpif-linux.c |7 ++--
lib/dpif-netdev.c | 87 +++--
lib/dpif-provider.h |9 +++--
lib/dpif.c| 10 ++---
lib/dpif.h|4 +-
ofpr
Thanks for the review! I fixed all these things in my next version (v3).
Ryan
From: Daniele Di Proietto
mailto:ddiproie...@vmware.com>>
Date: Wednesday, June 18, 2014 9:05 AM
To: Ryan Wilson mailto:wr...@nicira.com>>
Cc: "dev@openvswitch.org<mailto:dev@openvswit
upcall functions, eliminating the need for handler threads
for datapaths of type 'netdev'.
Signed-off-by: Ryan Wilson
---
v2: Fix race condition found during perf test
v3: Addressed Daniele's comments
---
lib/dpif-linux.c |3 +
lib/dpif-netdev.c
articular SMP methods used.
>
>
>
>Mike Polehn
>
>
>
>-Original Message-
>
>From: Ethan Jackson [mailto:et...@nicira.com]
>
>Sent: Tuesday, June 17, 2014 2:22 PM
>
>To: Polehn, Mike A; Alex Wang
>
>Cc: Ryan Wilson; dev@openvswitch.org
>
>Su
upcall functions, eliminating the need for handler threads
for datapaths of type 'netdev'.
Signed-off-by: Ryan Wilson
---
v2: Fix race condition found during perf test
---
lib/dpif-netdev.c | 327 +++--
lib/dpif-netdev.h |
upcall functions, eliminating the need for handler threads
for datapaths of type 'netdev'.
Signed-off-by: Ryan Wilson
---
lib/dpif-netdev.c | 332 -
lib/dpif-netdev.h |9 ++
lib/dpif.c| 68
ld to 'struct ofpbuf' when using
DPDK. This field holds a pointer to the allocated DPDK buffer in the
rte_mempool. Thus, an upcall packet ofpbuf allocated on the stack can
now share data and free memory of a rte_mempool allocated ofpbuf.
Signed-off-by: Ryan Wilson
Acked-by: Jarno Rajahalme
Ack
ning b is a
>> copy of the header and thus we can free the original header). I figured
>> I'd let you check out the patch and see if you had any other ideas.
>>
>
>An assert to this effect would help detect/avoid bugs.
>
>> Cheers,
>>
>> Ryan
>>
ld to 'struct ofpbuf' when using
DPDK. This field holds a pointer to the allocated DPDK buffer in the
rte_mempool. Thus, an upcall packet ofpbuf allocated on the stack can
now share data and free memory of a rte_mempool allocated ofpbuf.
Signed-off-by: Ryan Wilson
Acked-by: Jarno Rajahalme
--
x27;struct ofpbuf' when using
DPDK. This field holds a pointer to the allocated buffer in the
rte_mempool. Thus, an upcall packet ofpbuf allocated on the stack can
now share data and free memory of a rte_mempool allocated ofpbuf.
Signed-off-by: Ryan Wilson
Acked-by: Jarno Rajahalme
--
the
> error, which is dangerous.
>
> This patch ensures Linux, NetBSD and FreeBSD platforms use
> clock_gettime with their corresponding correct values and
> definitions. All other platforms use time.time().
>
> Signed-off-by: Ryan Wilson
Acked-by: YAMAMOTO Takashi
>
> -
r and thus we can free the original header). I figured
I'd let you check out the patch and see if you had any other ideas.
Cheers,
Ryan
On 6/3/14 5:22 PM, "Pravin Shelar" wrote:
>Can you combine it with second patch, otherwise it introduces a bug.
>
>On Tue, Jun 3,
x27;struct ofpbuf' when using
DPDK. This field holds a pointer to the allocated buffer in the
rte_mempool. Thus, an upcall packet ofpbuf allocated on the stack can
now share data and free memory of a rte_mempool allocated ofpbuf.
Signed-off-by: Ryan Wilson
Acked-by: Jarno Rajahalme
--
I've ran into some unexpected issues while perf testing this, lets hold
off on looking at this. I'll submit another patch when I've had all the
kinks worked out.
Ryan
On 6/3/14 2:21 PM, "Ryan Wilson 76511" wrote:
>Hey Pravin,
>
>Thanks for the catch her
ing of the allocated buffer from 'struct
rte_mbuf'. This allows ofpbufs to share packet data when using DPDK.
Signed-off-by: Ryan Wilson
---
lib/netdev-dpdk.c |3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index ba41d2e..155c
/4375/
Let me know if this patch works.
Cheers,
Ryan
On 6/3/14 10:50 AM, "Pravin Shelar" wrote:
>On Tue, Jun 3, 2014 at 10:33 AM, Ryan Wilson wrote:
>> When a bridge of datatype type netdev receives a packet, it copies the
>> packet from the NIC to a buffer in userspace
pcall can directly access the packet data.
This patch eliminates this extra copy of the packet data in most cases.
In cases where the packet may still be used later by callers of
dp_netdev_execute_actions, making a copy of the packet data is still
necessary.
Signed-off-by: Ryan Wilson
Acked-by:
jahalme" wrote:
>Ryan,
>
>See comments below.
>
> Jarno
>
>On Jun 2, 2014, at 3:54 PM, Ryan Wilson wrote:
>
>> When a bridge of datatype type netdev receives a packet, it copies the
>> packet from the NIC to a buffer in userspace. Currently, when making
pcall can directly access the packet data.
This patch eliminates this extra copy of the packet data in most cases.
In cases where the packet may still be used later by callers of
dp_netdev_execute_actions, making a copy of the packet data is still
necessary.
Signed-off-by: Ryan Wilson
---
v2: Addr
Thanks for the fix! Sorry, I don't know too much about the intricacies of
NetBSD. My first version seemed to work on my NetBSD instance though, so I
wrongly assumed it would work for most versions of NetBSD.
I tested this on FreeBSD and it works, but I don't know the intricacies of
FreeBSD either.
ch ensures Linux, NetBSD and FreeBSD platforms use
clock_gettime with their corresponding correct values and
definitions. All other platforms use time.time().
Signed-off-by: Ryan Wilson
---
v2: Added Yamamoto's diff to fix NetBSD case
---
python/ovs/timeval.py | 34 ++
>>>> ovs-xapi-sync, to poll block indefinitely since the time is
>>>> unexpectedly negative.
>>>>
>>>> This patch fixes the issue by using time.monotonic() if Python's
>>>> version >= 3.3. Otherwise, the timeval module calls out to t
ch ensures Linux, NetBSD and FreeBSD platforms use
clock_gettime with their corresponding correct values and
definitions. All other platforms use time.time().
Signed-off-by: Ryan Wilson
---
python/ovs/timeval.py | 21 +
1 file changed, 17 insertions(+), 4 deletions(-)
di
When a bridge of datatype type netdev receives a packet, it copies the
packet from the NIC to a buffer in userspace. Currently, when making
an upcall, the packet is again copied to the upcall's buffer. However,
this extra copy is not necessary when the datapath exists in userspace
as the upcall can
Sorry for the delay, I swear I haven't been ignoring this email.
Ok finally set up my NetBSD environment and master (with my rtbsd change)
compiles and passes all unit tests.
Ryan
From: Ryan Wilson mailto:wr...@vmware.com>>
Date: Thursday, May 29, 2014 10:47 PM
To: Ben Pfa
; version >= 3.3. Otherwise, the timeval module calls out to the
>> librt C shared library and uses the clock_gettime function with
>> CLOCK_MONOTONIC.
>>
>> Note this is only enabled on Linux-based platforms. This has been
>> tested on Ubuntu 12.04 and Redhat 6.4
Older versions of Python do not have ctypes as a default installed
package. This patch puts the 'import ctypes' statement inside a try
statement.
This fixes a bug introduced by commit 8396f (timeval: Use monotonic
time in OVS Python timeval library).
Signed-off-by: Ryan Wilson
---
hat 6.4.
Bug #1189434
Signed-off-by: Ryan Wilson
---
v2: Pre-load librt.so.1 library instead of loading at every function
call. Use only CLOCK_MONOTONIC for consistency with OVS C library.
v3: Edit commit message, remove if-linux check
---
python/ovs/timeval.py | 34
;s
version >= 3.3. Otherwise, the timeval module calls out to the
librt C shared library and uses the clock_gettime function with
CLOCK_MONOTONIC.
Note this is only enabled on Linux-based platforms. This has been
tested on Ubuntu 12.04 and Redhat 6.4.
Bug #1189434
Signed-off-by: Ryan Wilson
---
change again. This could
leave the database in an incorrect state for a long period of time.
This patch always sends status changes to the database if the last
transaction was not successful.
Bug #1256577
Signed-off-by: Ryan Wilson
---
v2: Addressed Alex's comments, edited commit message
change again. This could
leave the database in an incorrect state for a long period of time.
This patch always sends status changes to the database if the last
transaction was not successful.
Signed-off-by: Ryan Wilson
---
v2: Addressed Alex's comments, edited commit message to be more
acc
change again. This could
leave the database in an incorrect state for a long period of time.
This patch always sends status changes to the database if the last
transaction was not successful.
Signed-off-by: Ryan Wilson
---
v2: Addressed Alex's comments, edited commit message to be more
acc
. Since the
rtbsd_notifier_run() is always run by the main thread often,
receiving stale notifications from the notifier is unlikely.
Bug #1258532
Signed-off-by: Ryan Wilson
Acked-by: YAMAMOTO Takashi
---
v2: Fix OVS_EXCLUDES/OVS_EXCLUDED typo
---
lib/rtbsd.c | 39
Working on setting up a NetBSD environment now, will report back with the
results soon.
Ryan
From: Ben Pfaff mailto:b...@nicira.com>>
Date: Thursday, May 29, 2014 10:37 PM
To: Alex Wang mailto:al...@nicira.com>>
Cc: YAMAMOTO Takashi mailto:yamam...@valinux.co.jp>>,
Rya
change again. This could
leave the database in an incorrect state for a long period of time.
This patch always sends status changes to the database if the last
transaction was not successful.
Signed-off-by: Ryan Wilson
---
v2: Addressed Alex's comments, edited commit message to be more
acc
;s version >= 3.3.
Otherwise, the timeval module calls out to the librt C shared library and uses
the clock_gettime function with CLOCK_MONOTONIC_*.
Note this is only enabled on Linux-based platforms.
Bug #1189434
Signed-off-by: Ryan Wilson
---
python/ovs/time
Signed-off-by: Ryan Wilson
---
lib/ovsdb-idl.c | 28 +---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c
index 7556b7f..d6b9326 100644
--- a/lib/ovsdb-idl.c
+++ b/lib/ovsdb-idl.c
@@ -23,6 +23,7 @@
#include
#include
last transaction was
not successful.
Signed-off-by: Ryan Wilson
---
vswitchd/bridge.c | 37 ++---
1 file changed, 22 insertions(+), 15 deletions(-)
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index 9764c1f..9137dcd 100644
--- a/vswitchd/bridge.c
+++ b
. Since the
rtbsd_notifier_run() is always run by the main thread often,
receiving stale notifications from the notifier is unlikely.
Bug #1258532
Signed-off-by: Ryan Wilson
---
lib/rtbsd.c | 39 +--
1 file changed, 29 insertions(+), 10 deletions(-)
diff
t;module. I think the answer is to remove it from the header file and
>make it static.
>
>Other than that looks fine.
>
>Acked-by: Ethan Jackson
>
>
>On Thu, May 29, 2014 at 12:31 PM, Ryan Wilson wrote:
>> Due to patch fe83f8 (netdev: Remove netdev from global
freed. This causes a
race condition with the main thread which calls route_table_run
periodically to check for routing table updates.
This patch makes the route-table module thread-safe via a mutex.
Bug #1258532
Signed-off-by: Ryan Wilson
Acked-by: Ethan Jackson
---
lib/route-table.c | 23
freed. This causes a
race condition with the main thread which calls route_table_run
periodically to check for routing table updates.
This patch makes the route-table module thread-safe via a mutex.
Bug #1258532
Signed-off-by: Ryan Wilson
---
lib/route-table.c | 19 +++
1 file
Acked-by: Ryan Wilson
On 5/28/14 12:38 PM, "Ben Pfaff" wrote:
>Found by sparse.
>
>Signed-off-by: Ben Pfaff
>---
> ofproto/ofproto-dpif-xlate.c |4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/ofproto/ofproto-dpif-xlate.c b/o
>
>Acked-by: Ethan Jackson
>
>
>On Thu, May 22, 2014 at 7:03 PM, Alex Wang wrote:
>> Hey Ben,
>>
>> Could you review it? Should be all ready,
>>
>>
>> Thanks,
>> Alex Wang,
>>
>>
>> On Tue, May 20, 2014 at 11:19 AM, Ben
.
Signed-off-by: Ryan Wilson
Acked-by: Alex Wang
Acked-by: Ethan Jackson
---
v2: Split 1 commit into 3:
- netdev: Free netdev with ovsrcu_postpone.
- ovs-rcu: Add OVSRCU_TYPE_INITIALIZER which initializes OVSRCU_TYPE variables
to NULL.
- ofproto-dpif-xlate: Implement RCU locking in
http://patchwork.openvswitch.org/patch/4139/
With this patch, xlate_rwlock will be gone (as xlate will use RCU locking). So
this will no longer be an issue.
Still waiting on a review for this patch from Ben or Ethan, but hopefully it
will be pushed next week.
Ryan
_
This is a much cleaner improvement, thanks!
Acked-by: Ryan Wilson
On 5/22/14 11:04 AM, "Andy Zhou" wrote:
>ofproto_group_write_lookup() slightly different from
>ofproto_group_lookup() in handling reference counting.
>Currently, it has only one caller: modify_group().
>It
Thanks for this, Andy!
Acked-by: Ryan Wilson
From: dev on behalf of Andy Zhou
Sent: Wednesday, May 21, 2014 9:47 PM
To: d...@openvswitch.com
Subject: [ovs-dev] [PATCH] ofproto: Add const to immutable members of ofgroup.
Signed-off-by: Andy Zhou
Signed-off-by: Ryan Wilson
---
TODO | 17 -
1 file changed, 17 deletions(-)
diff --git a/TODO b/TODO
index dabe49c..e11089a 100644
--- a/TODO
+++ b/TODO
@@ -52,23 +52,6 @@ These changes might have backward-compatibility
implications; one
would have to test the behavior of
Signed-off-by: Ryan Wilson
Acked-by: Andy Zhou
---
v2: Fixed bug with group stats all buckets, cleaned up ofgroup unref code,
added Andy Zhou's test for more complete test coverage
v3: Split group ref/unref, support for group and bucket stats, and Andy Zhou's
tests into 3 patche
Signed-off-by: Ryan Wilson
Acked-by: Andy Zhou
---
v2: Fixed bug with group stats all buckets, cleaned up ofgroup unref code,
added Andy Zhou's test for more complete test coverage
v3: Split group ref/unref, support for group and bucket stats, and Andy Zhou's
tests into 3 patche
rrors with the previous one due how much this
reference count patch changed.
Ryan
On 5/21/14 7:05 PM, "Andy Zhou" wrote:
>On Wed, May 21, 2014 at 5:12 PM, Ryan Wilson wrote:
>> When adding support for OpenFlow group and bucket stats, a group entry
>>is added
>&g
s the need for ofgroup's lock.
Signed-off-by: Ryan Wilson
---
v2: Fixed bug with group stats all buckets, cleaned up ofgroup unref code,
added Andy Zhou's test for more complete test coverage
v3: Split group reference count, support for group and bucket stats into 2
patches. Commit An
works for converting constant
variables to non-constant variables). Obviously, I could initialize a
pointer to the constant variable and overwrite the pointer's value in
init_group. But this will make the code somewhat ugly for a minor gain.
>On Wed, May 21, 2014 at 2:14 PM, Ryan Wilson wro
o the
group. This also eliminates the need for ofgroup's lock as all properties of
ofgroup are read-only.
Signed-off-by: Ryan Wilson
---
v2: Fixed bug with group stats all buckets, cleaned up ofgroup unref code,
added Andy Zhou's test for more complete test coverage
v3: Split group
o the
group. This also eliminates the need for ofgroup's lock as all properties of
ofgroup are read-only.
Signed-off-by: Ryan Wilson
---
v2: Fixed bug with group stats all buckets, cleaned up ofgroup unref code,
added Andy Zhou's test for more complete test coverage
v3: Split group
>>>How about we remove the rwlock and only use ref count?
>>
>> We need the ref count to determine when we can free the group / bucket.
>> The rwlock is to serialize access to the ofgroup's properties. For
>> example, 2 threads could be accessing ofgroup's properties, but a ref
>> count doesn't p
>>
>> 1) Use refs for buckets (this seems unnecessarily heavyweight)
>> 2) Always try bucket_lookup when adding stats to a bucket via the cache.
>> If the bucket is not there in the list, we know its been removed via
>> modify_group() and we simply don't update stats.
>> 3) Use ofgroup->rw_lock to
uesday, May 20, 2014 7:06 PM
To: Ryan Wilson mailto:wr...@vmware.com>>
Cc: Alex Wang mailto:al...@nicira.com>>,
"dev@openvswitch.org<mailto:dev@openvswitch.org>"
mailto:dev@openvswitch.org>>, Ryan Wilson
mailto:wr...@nicira.com>>
Subject: Re: [ovs-dev] [P
>On Tue, May 20, 2014 at 3:54 PM, Ryan Wilson 76511
>wrote:
>>
>> Thanks for the review, Joe! I added a more clear description in 'struct
>> ofgroup' and the commit message to explain why the refcount is needed.
>That's good. Thanks for the improvement.
: Ryan Wilson mailto:wr...@vmware.com>>
Cc: "dev@openvswitch.org<mailto:dev@openvswitch.org>"
mailto:dev@openvswitch.org>>, Ryan Wilson
mailto:wr...@nicira.com>>
Subject: Re: [ovs-dev] [PATCH] ofproto: Remove per-flow miss hash table from
upcall handler.
On Mo
cleared by a
revalidator thread.
Signed-off-by: Ryan Wilson
---
v2: Fixed bug with group stats all buckets, cleaned up ofgroup unref code,
added Andy Zhou's test for more complete test coverage
v3: Split group reference count, support for group and bucket stats into 2
patches. Commit
o.c that seem to be
missing some annotations, but those seem unrelated to my patch. So it might be
better to do them in a separate patch. Let me know what you think.
Ryan
From: Joe Stringer mailto:joestrin...@nicira.com>>
Date: Tuesday, May 20, 2014 3:33 PM
To: Ryan Wilson mailto:wr...@vm
cleared by a
revalidator thread.
Signed-off-by: Ryan Wilson
---
v2: Fixed bug with group stats all buckets, cleaned up ofgroup unref code,
added Andy Zhou's test for more complete test coverage
v3: Split group reference count, support for group and bucket stats into 2
patches. Commit
1 - 100 of 135 matches
Mail list logo