Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Jul 2008 00:32:21 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Jeff Roberson <jroberson@jroberson.net>
Cc:        attilio@freebsd.org, arch@freebsd.org, ivmaykov@gmail.com
Subject:   Re: witness performance improvements
Message-ID:  <48819885.7040901@elischer.org>
In-Reply-To: <20080718163231.B954@desktop>
References:  <20080718163231.B954@desktop>

next in thread | previous in thread | raw e-mail | index | archive | help
Jeff Roberson wrote:
> Hello,
> 
> I have a patch that improves witness performance available at:
> 
> http://people.freebsd.org/~jeff/witness.diff
> 
> This improvement comes at the cost of some significant space overhead.  
> It changes the witness graph from a linked tree to a matrix based 
> approach. Relationships can be quickly resolved with a table lookup.  
> The table size is WITNESS_COUNT^2, or 1MB with the current count of 1024.
> 
> This patch also makes struct witness objects persistent even after the 
> last lock using this name has been removed.  This is helpful for short 
> lived objects which may be created frequently.
> 
> To reduce lock contention on SMP witness_checkorder() now runs without 
> the w_mtx when there are no lock violations.  I also cache a 
> lock_list_entry in each thread as allocating these requires the w_mtx.  
> The entry is disposed of at thread_exit().
> 
> There is also a new sysctl that produces dot output which graphs lock 
> order relationships with the graphviz program.
> 


cool... got sample output?

> Most of this work was done by Ilya Maykov while he was at Isilon 
> systems. The locking work and some cleanup/porting/refinement was done 
> by me on behalf of Nokia.
> 
> The performance improvement can be significant.  It is only on the order 
> of 10-20% for buildkernel but on a packet forwarding test at nokia it 
> sped things up by 5x putting a witness enabled kernel within about 50% 
> of the performance of a kernel without.  I believe buildworld isn't 
> helped as much because forking and exiting a lot would then contend on 
> the witness lock.
> 
> I'm mostly interested in hearing what people have to say about the space 
> bloat.  I believe it is in a commit ready state.

Since witness is not usually on production systems, I don't see a 
problem with giving it 1 MB.
kjfnb7

> 
> Thanks,
> Jeff
> _______________________________________________
> freebsd-arch@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48819885.7040901>