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>