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"