On Aug 1, 2014, at 4:33 PM, Xin LI <delp...@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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to