svn commit: r269404 - head/sys/cddl/compat/opensolaris/sys
Justin T. Gibbs
gibbs at scsiguy.com
Sat Aug 2 03:59:17 UTC 2014
On Aug 1, 2014, at 4:33 PM, Xin LI <delphij at freebsd.org> wrote:
> Author: delphij
> Date: Fri Aug 1 22:33:23 2014
> New Revision: 269404
> URL: http://svnweb.freebsd.org/changeset/base/269404
>
> Log:
> Split gethrtime() and gethrtime_waitfree() and make the former use
> nanouptime() instead of getnanouptime(). nanouptime(9) provides more
> precise result at expense of being slower.
>
> In r269223, gethrtime() is used as creation time of dbuf, which in turn
> acts as portion of lookup key to maintain AVL invariant where there can
> not be duplicate items. Before this change, gethrtime() have preferred
> better execution time by sacrificing precision, which may lead to panic
> on busy systems with:
>
> panic: avl_find() succeeded inside avl_add()
I don’t believe that r269223 requires a temporal ordering of the dbufs in the AVL, just unique entries. So why use an expensive operation like getting high resolution time? Can’t we just use a PCPU counter and tag the dbufs with "CPU# << 48 | PCPU_counter”?
—
Justin
More information about the svn-src-head
mailing list