[ovs-dev] [PATCH v4] ofproto-dpif-xlate: Implement RCU locking in ofproto-dpif-xlate.

Ryan Wilson wryan at vmware.com
Tue May 20 04:56:32 UTC 2014


Sorry Gurucharan, totally forgot to answer your question!

After interspersing these tests with random calls to reload the kernel module, it doesn't appear to affect time in any significant way.

Ryan Wilson
Member of Technical Staff
wryan at vmware.com
3401 Hillview Avenue, Palo Alto, CA
650.427.1511 Office
916.588.7783 Mobile

On May 19, 2014, at 9:53 PM, Ryan Wilson <wryan at vmware.com> wrote:

> So I did an experiment where I added 500 and 1000 ports and then deleted 500 and 1000 ports with and without this patch on both machines with 8 GB and 62 GB memory. Weirdly enough, adding / deleting ports with the RCU patch turned out to actually be faster than without. My only explanation here is taking the global xlate lock is expensive and / or 500 ports wasn't enough to induce memory pressure.
> 
> Here are the numbers for the 500 port case on a 8 GB memory machine:
> WIth RCU patch:
> Adding ports: real	1m15.850s
> Deleting ports: real	1m21.830s
> 
> Without RCU patch:
> Adding ports: real	1m28.357s
> Deleting ports: real	1m33.277s
> 
> Ryan Wilson
> Member of Technical Staff
> wryan at vmware.com
> 3401 Hillview Avenue, Palo Alto, CA
> 650.427.1511 Office
> 916.588.7783 Mobile
> 
> On May 19, 2014, at 8:56 AM, Ben Pfaff <blp at nicira.com> wrote:
> 
>> On Fri, May 16, 2014 at 06:59:02AM -0700, Ryan Wilson wrote:
>>> Before, a global read-write lock protected the ofproto-dpif / ofproto-dpif-xlate
>>> interface. Handler and revalidator threads had to wait while configuration was
>>> being changed. This patch implements RCU locking which allows handlers and
>>> revalidators to operate while configuration is being updated.
>>> 
>>> Signed-off-by: Ryan Wilson <wryan at nicira.com>
>>> Acked-by: Alex Wang <alexw at nicira.com>
>> 
>> One side effect of this change that I am a bit concerned about is
>> performance of configuration changes.  In particular, it looks like
>> removing a port requires copying the entire configuration and that
>> removing N ports requires copying the entire configuration N times.  Can
>> you try a few experiments with configurations that have many ports,
>> maybe 500 or 1000, and see how long it takes to remove several of them?
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=TfBS78Vw3dzttvXidhbffg%3D%3D%0A&m=Zs91K1%2FqNCTCBEK8%2FYn6ZxlWk8%2B9KnAmWsxIFslVMIM%3D%0A&s=d0a516ff3c7de6162c8224e60363e8159c1da0eabe5ede2e10d43b18858e965d
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20140519/b65c47d1/attachment-0005.html>


More information about the dev mailing list