Re: 2.2.5 optimizations for web benchmarks?

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Fri, 30 Apr 1999 18:44:21 +0200 (CEST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---1247997369-1505673519-925490661=:18422
Content-Type: TEXT/PLAIN; charset=US-ASCII

On 30 Apr 1999, Linus Torvalds wrote:

> If they indeed do it in three cycles without a stall, that's a
> surprisingly _huge_ improvement for them. [...]

i have to correct my statement, the true cost is 5 cycles, and this likely
includes a pipeline stall. I've attached some code that tries to carefully
measure the cost of cached TLB misses. (it generates a random access
pattern, then it measures the cost of reading pages randomly from a big
buffer) The numbers when accessing 512 pages randomly are:

[root@moon asm]# ./tlb
6 1 6 6 6 6 6 6 6 6 1 1 6 6 6 6 6 6 6 6 6 6 6 6 1 1 6 6 6 6 6 6 6 6 6 6 6
6 6 6 1 1 6 6 6 6 6 6 6 6 1 6 6 6 6 6 6 6 6 1 6 6 6 6 6 6 6 6 6 6 6 6 6 6
6 6 1 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6 6 6 6 1 6 6 6 6 6 6 6 6
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6 6 6 6 6 6 1 6 1 6 6 6 6 6 6 6 6 6
6 6 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 1 6 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6 6
6 6 6 6 6 6 6 6 6 6 1 6 1 6 6 6 6 6 6 6 6 1 6 6 6 6 6 1 6 6 6 6 6 1 6 6 6
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6 6 6 1 6
6 6 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 1 1 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6
6 6 6 6 6 6 6 6 6 1 6 6 6 6 6 1 6 6 6 1 6 6 6 1 6 6 6 6 1 1 6 6 6 6 1 6 6
6 1 6 6 6 6 6 6 6 6 6 6 1 1 6 6 6 6 6 1 6 6 6 6 6 6 6 6 1 6 6 6 1 6 6 6 6
6 6 6 6 6 1 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
6 6 6 6 6 6 6 6 1 6 1 6 1 6 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6 6 6 6 6 6 6
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6 1 6 6 6 6 1 6 6 6 6 6 6 6 1 6
1 6 6 6 6 1 1 6 6 6 6 6 6 6 6 6 6 6 6 1 6 6 6 6 6 6 6 6 6 1 6
512 randomly accessed pages, 88.867188% TLB misses.
[root@moon asm]#

ie. 1 cycle when no TLB miss memory access, 6 cycles when memory access +
TLB miss. (The 3 cycles claim came from a flawed variant of this test that
did not try to isolate rdtsc from the measured instructions ...)

and when accessing 32 pages (well below their TLB size) we get:

[root@moon asm]# ./tlb
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
32 randomly accessed pages, 0.000000% TLB misses.
[root@moon asm]#

sorry for spreading misinformation, TLB miss costs are still far from
being zero.

-- mingo

---1247997369-1505673519-925490661=:18422
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tlb.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.990430184421.18422N@chiara.csoma.elte.hu>
Content-Description:

LyoNCiAqIFRMQiBtaXNzIG1lYXN1cmVtZW50IG9uIFBJSSBDUFVzLg0KICov
DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4NCiNp
bmNsdWRlIDxzaWduYWwuaD4NCiNpbmNsdWRlIDxzeXMvd2FpdC5oPg0KI2lu
Y2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0KDQojZGVmaW5lIEJZVEVTICg1MTIq
NCoxMDI0KQ0KI2RlZmluZSBQQUdFUyAoQllURVMvNDA5NikNCg0Kc3RhdGlj
IGNoYXIgYnVmZmVyW0JZVEVTKzFdOw0KdW5zaWduZWQgbG9uZyBsb25nIHQx
LCB0MiwgZGVsdGFbUEFHRVNdOw0KDQoNCnZvaWQgZG9fdGVzdCAoY2hhciAq
IGFkZHIpDQp7DQoJLyoNCgkgKiAnY2xpJyBpcyB1c2VkIGFzIGEgc2VyaWFs
aXppbmcgaW5zdHJ1Y3Rpb24gdG8NCgkgKiBpc29sYXRlIHRoZSBiZW5jaG1h
cmtlZCBpbnN0cnVjdGlvbiBmcm9tIHJkdHNjLg0KCSAqLw0KCV9fYXNtX18g
KA0KCQkiDQoJCQkJCQljbGk7DQoJCXJkdHNjOw0KCQltb3ZsICUlZWF4LCAl
JWVieDsNCgkJbW92bCAlJWVkeCwgJSVlY3g7DQoJCQkJCQljbGk7DQoJCSMg
c3RhcnQgb2YgYmVuY2htYXJrZWQgc2VjdGlvbg0KDQoJCW1vdmwgKCUlZXNp
KSwgJSVlYXg7DQoNCgkJIyBlbmQgb2YgYmVuY2htYXJrZWQgc2VjdGlvbg0K
CQkJCQkJY2xpOw0KCQlyZHRzYw0KCQkJCQkJc3RpOw0KCQkiDQoNCgkJOiI9
YSIgKCooKChpbnQqKSZ0MikrMCkpLCAiPWQiICgqKCgoaW50KikmdDIpKzEp
KSwNCgkJICI9YiIgKCooKChpbnQqKSZ0MSkrMCkpLCAiPWMiICgqKCgoaW50
KikmdDEpKzEpKQ0KDQoJCToiUyIoYWRkcik6Im1lbW9yeSIpOw0KfQ0KDQpl
eHRlcm4gaW50IGlvcGwoaW50KTsNCg0Kdm9pZCBtYWluICh2b2lkKQ0Kew0K
CWludCBqLCBrLCBjLCBoaXQ7DQoJaW50IG1hdHJpeCBbUEFHRVNdOw0KDQoJ
aW9wbCgzKTsNCgkvKg0KCSAqIGZpcnN0IGdlbmVyYXRlIGEgcmFuZG9tIGFj
Y2VzcyBwYXR0ZXJuLg0KCSAqLw0KCWZvciAoaiA9IDA7IGogPCBQQUdFUzsg
aisrKSB7DQoJCW1hdHJpeFtqXSA9IHJhbmRvbSgpLyhSQU5EX01BWC9QQUdF
Uyk7DQoJCWlmIChtYXRyaXhbal0gPj0gUEFHRVMpDQoJCQlwcmludGYoIiVk
ICIsIG1hdHJpeFtqXSk7DQoJfQ0KDQoJLyoNCgkgKiAxMCB3YXJtdXAgbG9v
cHMsIHRoZSBsYXN0IG9uZSBpcyBwcmludGVkLg0KCSAqLw0KCWZvciAoayA9
IDA7IGsgPCAxMDsgaysrKSB7DQoJCWMgPSAwOw0KCQlmb3IgKGogPSAwOyBq
IDwgUEFHRVM7IGorKykgew0KCQkJY2hhciAqIGFkZHI7DQoJCQlhZGRyID0g
YnVmZmVyICsgbWF0cml4W2pdKjQwOTY7DQoJCQlkb190ZXN0KGFkZHIpOw0K
CQkJZGVsdGFbYysrXSA9IHQyLXQxOw0KCQl9DQoJfQ0KCWhpdCA9IDA7DQoJ
Zm9yIChqID0gMDsgaiA8IFBBR0VTOyBqKyspIHsNCgkJdW5zaWduZWQgbG9u
ZyBsb25nIGQgPSBkZWx0YVtqXS00NzsNCgkJcHJpbnRmKCIlTGQgIiwgZCk7
DQoJCWlmIChkID09IDEpDQoJCQloaXQrKzsNCgl9DQoJcHJpbnRmKCJcbiIp
Ow0KCXByaW50ZigiJWQgcmFuZG9tbHkgYWNjZXNzZWQgcGFnZXMsICVmJSUg
VExCIG1pc3Nlcy5cbiIsIFBBR0VTLA0KCQkJMTAwLjAqKChkb3VibGUpUEFH
RVMtKGRvdWJsZSloaXQpLyhkb3VibGUpUEFHRVMpOw0KfQ0KDQo=
---1247997369-1505673519-925490661=:18422--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/