svn commit: r269404 - head/sys/cddl/compat/opensolaris/sys

Xin Li delphij at delphij.net
Sat Aug 2 07:44:48 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 8/1/14 8:59 PM, Justin T. Gibbs wrote:
> 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”?

What do you think about D521?  (Alexander suggested similar
implementation).

https://phabric.freebsd.org/D521

Cheers,

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJT3JboAAoJEJW2GBstM+nsq7wP/j+QfLnkTVTIgFWk15L2haeo
V6lPD2GwjggxGn50S9+POOiB1V4kZwTEydkEJ+4vMXkH+Evke5p0eYObF7Ye1ejc
UqprnIuEK3N63YkbX2tNkIX22zCJd5KKvnHjWd7IR88c2XT2doPwo+o9IsaWFdrW
Gn2FYr1hsw3Pi5PKytzEhc1zOpBa/kXy6gy9ZDOjBCnUXjL6v29GlOa5L+VLCOtG
mGpiVdWl18unLW+x0uoT4AfDVeyNYJGIDMzzV5OBtLp14fcDCcWPswwpq4VMDdrf
ZWLarOahwpjD7eO9MHFMXgtrZVzj7qY3xXJJDsiNWv109TwOvHx9NmYAVtP3CT3g
T5QrkXJzuWJlIsBAX1bHtdLMRRAdSTDN8q9XE3r+2TJ1NUpazEEkA7iRpXLrlvbP
rEyFGjr3CEKdGQXMdGx3kpqgqYLRAdo3MdXQIXU/OpWY3CAqm82ljQtqHmfuDHO1
Kb5rcqLxApKaxGqoq7GnZH5vHfrU9ulaYBBTykV3PyCGV5A4p4FWUJBUaS/FaKZv
+w53o87L+LRPniyPU5V6i18I/M2X3mIGzUCv+i5oK7ac0O5hMOkORXVs8KTiQ7DG
zCzw2eUG26cDGDGPzpixvVKPBKqFTDROQIttmtm5x234zESFINtS534Hdl+XAsDh
zSVHaNCcebZ0RYiphbd3
=fb7k
-----END PGP SIGNATURE-----


More information about the svn-src-all mailing list