Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Nov 2005 01:03:59 +0000 (GMT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys time.h src/sys/kern kern_time.c
Message-ID:  <20051127005622.H81764@fledge.watson.org>
In-Reply-To: <200511270055.jAR0tIkF032480@repoman.freebsd.org>
References:  <200511270055.jAR0tIkF032480@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--0-1104699872-1133053439=:81764
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed


On Sun, 27 Nov 2005, Robert Watson wrote:

>  Add experimental low-precision clockid_t names corresponding to these
>  clocks, but implemented using cached timestamps in kernel rather than
>  a full time counter query.  This offers a minimum update rate of 1/HZ,
>  but in practice will often be more frequent due to the frequency of
>  time stamping in the kernel:
>
>  New clockid_t name              Approximates existing clockid_t
>
>  CLOCK_REALTIME_FAST             CLOCK_REALTIME
>  CLOCK_MONOTONIC_FAST            CLOCK_MONOTONIC
>  CLOCK_UPTIME_FAST               CLOCK_UPTIME
>
>  Add one additional new clockid_t, CLOCK_SECOND, which returns the
>  current second without performing a full time counter query or cache
>  lookup overhead to make sure the cached timestamp is stable.  This is
>  intended to support very low granularity consumers, such as time(3).

These changes are primarily intended to support the identification of 
time-associated bottlenecks and allow experimentation with application 
scoped reduction in quality of time use.  Attached is a small LD_PRELOAD 
library to allow applications to be switched to the _FAST variants for 
gettimeofday().  Build and install, then set:

   LD_PRELOAD=/usr/lib/libwrapper.so ; export LD_PRELOAD

This is not intended to be the last word in how this should be done -- 
more, to facilitate some experimentation by providing some framework for 
experimentation (i.e., a sample API and code to tweak applications).  I 
expect that the details will be subject to substantial change. :-)

Robert N M Watson
--0-1104699872-1133053439=:81764
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=Makefile
Content-Transfer-Encoding: BASE64
Content-ID: <20051127010359.W81764@fledge.watson.org>
Content-Description: 
Content-Disposition: attachment; filename=Makefile

IyAkRnJlZUJTRCQNCg0KTElCPQkJd3JhcHBlcg0KU0hMSUJfTUFKT1I9CTEN
ClNSQ1M9CQl3cmFwcGVyLmMNCg0KTk9fTUFOPQ0KDQouaW5jbHVkZSA8YnNk
LmxpYi5taz4NCg==

--0-1104699872-1133053439=:81764
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=wrapper.c
Content-Transfer-Encoding: BASE64
Content-ID: <20051127010359.E81764@fledge.watson.org>
Content-Description: 
Content-Disposition: attachment; filename=wrapper.c

LyotDQogKiBDb3B5cmlnaHQgKGMpIDIwMDUgUm9iZXJ0IE4uIE0uIFdhdHNv
bg0KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqDQogKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQNCiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KICogYXJl
IG1ldDoNCiAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuDQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4NCiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQog
KiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RQ0KICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikNCiAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKiAkRnJlZUJT
RCQNCiAqLw0KDQovKg0KICogU21hbGwgd3JhcHBlciBsaWJyYXJ5IHRvIHN1
YnN0aXR1dGUgaW1wbGVtZW50YXRpb25zIG9mIGdldHRpbWVvZmRheSgyKSBh
bmQNCiAqIHRpbWUoMykgd2l0aCBsb3dlciByZXNvbHV0aW9uIHZhcmlhdGlv
bnMuICB0aW1lKDMpIGlzIHVuY29uZGl0aW9uYWxseQ0KICogZGVncmFkZWQs
IHNpbmNlIGl0IHdpbGwgcmV0dXJuIGEgdHJ1bmNhdGVkIHRpbWUgYW55d2F5
LiAgZ2V0dGltZW9mZGF5KDMpDQogKiBjaGVja3MgdGhlIFRJTUVXUkFQUEVS
IGVudmlyb25tZW50YWwgdmFyaWFibGUsIHdoaWNoIGNhbiBiZSBzZXQgdG8g
ZWl0aGVyDQogKiAiUFJFQ0lTRSIgb3IgIkZBU1QiLg0KICovDQoNCiNpbmNs
dWRlIDxzeXMvdGltZS5oPg0KDQojaW5jbHVkZSA8c3RkbGliLmg+DQojaW5j
bHVkZSA8c3RyaW5nLmg+DQoNCnN0YXRpYyBpbnQJCXRpbWV3cmFwcGVyX2lu
aXRpYWxpemVkOw0Kc3RhdGljIGNsb2NraWRfdAl0aW1ld3JhcHBlcl9jbG9j
azsNCg0KLyoNCiAqIFNlbGVjdCB3aGF0ZXZlciBzeXN0ZW0gZGVmYXVsdCBp
cyBwcmVzZW50IGZvciBDTE9DS19SRUFMVElNRSBhcyB0aGUNCiAqIGRlZmF1
bHQgaWYgdGhlIGVudmlyb25tZW50YWwgdmFyaWFibGUgaXMgdW5zZXQsIG9y
IHNldCB0byBhbiBpbnZhbGlkDQogKiB2YWx1ZS4NCiAqLw0KI2RlZmluZQlU
SU1FV1JBUFBFUl9FTlYJCSJUSU1FV1JBUFBFUiINCiNkZWZpbmUJVElNRVdS
QVBQRVJfREVGQVVMVAlDTE9DS19SRUFMVElNRQ0KI2RlZmluZQlUSU1FV1JB
UFBFUl9TVFJQUkVDSVNFCSJQUkVDSVNFIg0KI2RlZmluZQlUSU1FV1JBUFBF
Ul9TVFJGQVNUCSJGQVNUIg0KDQpzdGF0aWMgdm9pZA0KdGltZXdyYXBwZXJf
aW5pdGlhbGl6ZSh2b2lkKQ0Kew0KCWNvbnN0IGNoYXIgKndoaWNoY2xvY2tf
ZW52Ow0KDQoJd2hpY2hjbG9ja19lbnYgPSBnZXRlbnYoVElNRVdSQVBQRVJf
RU5WKTsNCglpZiAod2hpY2hjbG9ja19lbnYgPT0gTlVMTCkgew0KCQl0aW1l
d3JhcHBlcl9jbG9jayA9IFRJTUVXUkFQUEVSX0RFRkFVTFQ7DQoJCXRpbWV3
cmFwcGVyX2luaXRpYWxpemVkID0gMTsNCgkJcmV0dXJuOw0KCX0NCg0KCWlm
IChzdHJjbXAod2hpY2hjbG9ja19lbnYsIFRJTUVXUkFQUEVSX1NUUlBSRUNJ
U0UpID09IDApDQoJCXRpbWV3cmFwcGVyX2Nsb2NrID0gQ0xPQ0tfUkVBTFRJ
TUVfUFJFQ0lTRTsNCgllbHNlIGlmIChzdHJjbXAod2hpY2hjbG9ja19lbnYs
IFRJTUVXUkFQUEVSX1NUUkZBU1QpID09IDApDQoJCXRpbWV3cmFwcGVyX2Ns
b2NrID0gQ0xPQ0tfUkVBTFRJTUVfRkFTVDsNCgllbHNlDQoJCXRpbWV3cmFw
cGVyX2Nsb2NrID0gVElNRVdSQVBQRVJfREVGQVVMVDsNCgl0aW1ld3JhcHBl
cl9pbml0aWFsaXplZCA9IDE7DQp9DQoNCmludA0KZ2V0dGltZW9mZGF5KHN0
cnVjdCB0aW1ldmFsICp0cCwgc3RydWN0IHRpbWV6b25lICp0enApDQp7DQoJ
c3RydWN0IHRpbWVzcGVjIHRzOw0KDQoJaWYgKCF0aW1ld3JhcHBlcl9pbml0
aWFsaXplZCkNCgkJdGltZXdyYXBwZXJfaW5pdGlhbGl6ZSgpOw0KDQoJLyoN
CgkgKiBYWFhSVzogTm90IGlkZWFsLCBzaW5jZSByZXR1cm5pbmcgRUlOVkFM
IGZyb20gZ2V0dGltZW9mZGF5KCkgaXNuJ3QNCgkgKiBleHBlY3RlZC4gIEZh
bGwgYmFjayB0byB0aGUgZ2V0dGltZW9mZGF5KCkgc3lzdGVtIGNhbGwgaW5z
dGVhZD8NCgkgKi8NCglpZiAoY2xvY2tfZ2V0dGltZSh0aW1ld3JhcHBlcl9j
bG9jaywgJnRzKSA8IDApDQoJCXJldHVybiAoLTEpOw0KDQoJdHAtPnR2X3Nl
YyA9IHRzLnR2X3NlYzsNCgl0cC0+dHZfdXNlYyA9IHRzLnR2X25zZWMgLyAx
MDAwOw0KDQoJcmV0dXJuICgwKTsNCn0NCg0KdGltZV90DQp0aW1lKHRpbWVf
dCAqdGxvYykNCnsNCglzdHJ1Y3QgdGltZXNwZWMgdHM7DQoNCglpZiAoY2xv
Y2tfZ2V0dGltZShDTE9DS19TRUNPTkQsICZ0cykgPCAwKSB7DQoJCWlmICh0
bG9jICE9IE5VTEwpDQoJCQkqdGxvYyA9IC0xOw0KCQlyZXR1cm4gKC0xKTsN
Cgl9DQoNCglpZiAodGxvYyAhPSBOVUxMKQ0KCQkqdGxvYyA9IHRzLnR2X3Nl
YzsNCg0KCXJldHVybiAodHMudHZfc2VjKTsNCn0NCg==

--0-1104699872-1133053439=:81764--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051127005622.H81764>