Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-07-19 Thread Ben Pfaff
On Sat, Jul 19, 2014 at 10:07:16PM +0300, Jarno Rajahalme wrote: > > > On Jul 19, 2014, at 8:27 PM, Ben Pfaff wrote: > > > > We could make some operations lockless, like read and store, > > These would be enough for RCU cmap and classifier, right? Refcount > needs the read-modify-write operatio

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-07-19 Thread Jarno Rajahalme
> On Jul 19, 2014, at 8:27 PM, Ben Pfaff wrote: > > We could make some operations lockless, like read and store, These would be enough for RCU cmap and classifier, right? Refcount needs the read-modify-write operations, though. > but I don't > know how to make read-modify-write operations loc

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-07-19 Thread Ben Pfaff
We could make some operations lockless, like read and store, but I don't know how to make read-modify-write operations lockless generically. What do you have in mind? On Sat, Jul 19, 2014 at 11:37:42AM +0300, Jarno Rajahalme wrote: > Would it be a bad idea to make the trivial types with sizes less

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-07-19 Thread Jarno Rajahalme
Would it be a bad idea to make the trivial types with sizes less than void pointer lockless in ovs-atomic-pthread just like in gcc4+, at least for x86/64? Jarno > On Jul 19, 2014, at 10:05 AM, Ben Pfaff wrote: > > I guess not, I see that xenddk-6.0.0-50762, at least, doesn't have a > libato

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-07-19 Thread Ben Pfaff
I guess not, I see that xenddk-6.0.0-50762, at least, doesn't have a libatomic. On Sat, Jul 19, 2014 at 12:04:25AM -0700, Ben Pfaff wrote: > Does it make a difference if you add -latomic to the linker flags? > > On Fri, Jul 18, 2014 at 05:32:39PM -0700, Jarno Rajahalme wrote: > > From config.log:

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-07-19 Thread Ben Pfaff
Does it make a difference if you add -latomic to the linker flags? On Fri, Jul 18, 2014 at 05:32:39PM -0700, Jarno Rajahalme wrote: > From config.log: > > configure:13921: checking whether gcc -std=gnu99 supports GCC 4.0+ atomic > built-ins > configure:13988: gcc -std=gnu99 -o conftest -g -O2

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-07-18 Thread Jarno Rajahalme
>From config.log: configure:13921: checking whether gcc -std=gnu99 supports GCC 4.0+ atomic built-ins configure:13988: gcc -std=gnu99 -o conftest -g -O2 conftest.c -lrt -lm >&5 /tmp/ccZ2M4lr.o: In function `main': /usr/src/redhat/BUILD/openvswitch-2.3.90.37691/conftest.c:57: undefined referen

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-07-18 Thread Jarno Rajahalme
I think I found the reason for the slowness of cmap on XenServer. I was debugging on a XenServer tonight and found out that the configure test for GCC atomics had apparently failed, as I noticed actual lock and unlock operations on gdb disassembly, and then by the fact the changes I made to the

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-06-25 Thread Gurucharan Shetty
On Wed, Jun 25, 2014 at 11:09 AM, Ben Pfaff wrote: > I am really surprised to hear that it takes over a minute. On my > workstation (which is a few years old), "ovstest test-cmap check 1" > only takes 6.5 seconds. Do you have any idea what's different on > XenServer? It might be the GCC version

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-06-25 Thread Ben Pfaff
I am really surprised to hear that it takes over a minute. On my workstation (which is a few years old), "ovstest test-cmap check 1" only takes 6.5 seconds. Do you have any idea what's different on XenServer? It might be the GCC version, which version is it using? On Wed, Jun 25, 2014 at 09:40:

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-06-25 Thread Ben Pfaff
Sounds good. I'll look at the pvector v2 now. On Wed, Jun 25, 2014 at 04:19:23AM -0700, Jarno Rajahalme wrote: > Ben, > > Thanks for the reviews! > > I have addressed the (minor) comments on the series, will push once the > vector v2 is ack?ed. I?ll keep this last patch as the first in the cla

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-06-25 Thread Gurucharan Shetty
I had a quick comment. I noticed while running unit tests on Xenserver that the cuckoo hash unit test was very slow. It takes a little more than one minute to complete. I wonder whether using more cmap would hurt Xenserver's performance? On Wed, Jun 25, 2014 at 4:19 AM, Jarno Rajahalme wrote: > B

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-06-25 Thread Jarno Rajahalme
Ben, Thanks for the reviews! I have addressed the (minor) comments on the series, will push once the vector v2 is ack’ed. I’ll keep this last patch as the first in the classifier RCU series. Jarno On Jun 13, 2014, at 10:37 AM, Ben Pfaff wrote: > On Mon, Jun 09, 2014 at 11:53:55AM -0700, J

Re: [ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-06-13 Thread Ben Pfaff
On Mon, Jun 09, 2014 at 11:53:55AM -0700, Jarno Rajahalme wrote: > Use cmap instead of hmap & hindex in classifier. Performance impact > with current locking strategy is not yet tested. Later patches will > introduce RCU into the classifer. into the "classifier". > Signed-off-by: Jarno Rajahalm

[ovs-dev] [PATCH 8/8] lib/classifier: Use cmap.

2014-06-09 Thread Jarno Rajahalme
Use cmap instead of hmap & hindex in classifier. Performance impact with current locking strategy is not yet tested. Later patches will introduce RCU into the classifer. Signed-off-by: Jarno Rajahalme --- lib/classifier.c| 194 +-- lib/class