From: "Török Edwin" <edwintorok@gmail.com>
To: Rene Herman <rene.herman@gmail.com>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
dpreed@reed.com, Alan Cox <alan@lxorguk.ukuu.org.uk>,
pavel@ucw.cz, andi@firstfloor.org, rol@as2917.net,
Krzysztof Halasa <khc@pm.waw.pl>,
david@davidnewall.com, hpa@zytor.com, john@stoffel.org,
linux-os@analogic.com
Subject: Re: [RFT] Port 0x80 I/O speed
Date: Wed, 12 Dec 2007 19:27:46 +0200 [thread overview]
Message-ID: <47601A12.2040103@gmail.com> (raw)
In-Reply-To: <475F1DC6.5090403@keyaccess.nl>
Rene Herman wrote:
> Good day.
>
> Would some people on x86 (both 32 and 64) be kind enough to compile
> and run the attached program? This is about testing how long I/O port
> access to port 0x80 takes. It measures in CPU cycles so CPU speed is
> crucial in reporting.
>
> Posted a previous incarnation of this before, buried in the outb 0x80
> thread which had a serialising problem. This one should as far as I
> can see measure the right thing though. Please yell if you disagree...
>
Hi,
Tested on 2 systems.
System I
------------
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 47
model name : AMD Athlon(tm) 64 Processor 3200+
stepping : 2
cpu MHz : 2000.000
cache size : 512 KB
fpu : yes
fpu_exception : yes
Motherboard: Asus A9N-E
With -m32:
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 619, in 583
edwin@lightspeed2:~$ sudo ./port80
cycles: out 619, in 583
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
After making the __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
I get this with 64:
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
edwin@lightspeed2:~$ sudo ./port80
cycles: out 618, in 583
edwin@lightspeed2:~$ sudo ./port80
cycles: out 618, in 583
edwin@lightspeed2:~$ sudo ./port80
cycles: out 1107, in 1067
If I stop cpudyn I get a constant 618/583.
System II
------------
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 14
model name : Genuine Intel(R) CPU T2300 @ 1.66GHz
stepping : 8
cpu MHz : 1667.000
cache size : 2048 KB
physical id : 0
siblings : 2
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 14
model name : Genuine Intel(R) CPU T2300 @ 1.66GHz
stepping : 8
cpu MHz : 1667.000
cache size : 2048 KB
physical id : 0
siblings : 2
Dell Inspiron 6400, Intel Core Duo (ICH7 chipset)
thunder:/home/edwin# ./port80
cycles: out 2480, in 1867
thunder:/home/edwin# ./port80
cycles: out 2482, in 1865
thunder:/home/edwin# ./port80
cycles: out 2968, in 1893
thunder:/home/edwin# ./port80
cycles: out 1991, in 1372
thunder:/home/edwin# ./port80
cycles: out 1979, in 1366
thunder:/home/edwin# ./port80
cycles: out 2473, in 1865
thunder:/home/edwin# ./port80
cycles: out 2484, in 1869
After setting CPU governor to performance:
# ./port80
cycles: out 2368, in 1783
thunder:/home/edwin# ./port80
cycles: out 2377, in 1783
thunder:/home/edwin# ./port80
cycles: out 2367, in 1774
thunder:/home/edwin# ./port80
cycles: out 2370, in 1780
thunder:/home/edwin# ./port80
cycles: out 2365, in 1782
thunder:/home/edwin# ./port80
cycles: out 2369, in 1774
thunder:/home/edwin# ./port80
cycles: out 2366, in 1784
thunder:/home/edwin# ./port80
cycles: out 2379, in 1786
thunder:/home/edwin# ./port80
cycles: out 2367, in 1773
thunder:/home/edwin# ./port80
cycles: out 2376, in 1783
thunder:/home/edwin# ./port80
cycles: out 2360, in 1784
thunder:/home/edwin# ./port80
cycles: out 2367, in 1783
thunder:/home/edwin# ./port80
cycles: out 2370, in 1783
thunder:/home/edwin# ./port80
cycles: out 2382, in 1782
Also tried in a loop, but values are not constant:
while true; do ./port80; done
cycles: out 2415, in 1818
cycles: out 2405, in 1817
cycles: out 2414, in 1810
cycles: out 2411, in 1819
cycles: out 2407, in 1821
cycles: out 2410, in 1820
cycles: out 2418, in 1821
cycles: out 2408, in 1847
cycles: out 2404, in 1805
cycles: out 2411, in 1858
cycles: out 2395, in 1765
cycles: out 2377, in 1786
cycles: out 2378, in 1813
cycles: out 2395, in 1800
cycles: out 2381, in 1793
cycles: out 2382, in 1790
cycles: out 2399, in 1835
cycles: out 1928, in 1327
cycles: out 2410, in 1781
cycles: out 1996, in 1287
cycles: out 2369, in 1768
cycles: out 2401, in 1805
cycles: out 2395, in 1802
cycles: out 2389, in 1786
cycles: out 2359, in 1768
cycles: out 2495, in 1858
cycles: out 2408, in 1809
cycles: out 2919, in 1859
cycles: out 2404, in 1798
cycles: out 2393, in 1791
cycles: out 2882, in 1797
cycles: out 2404, in 1789
cycles: out 2406, in 1785
cycles: out 2393, in 1840
cycles: out 2498, in 1818
cycles: out 2402, in 1805
cycles: out 2888, in 1858
cycles: out 2397, in 1802
cycles: out 2411, in 1810
cycles: out 2396, in 1788
cycles: out 2362, in 1780
cycles: out 2861, in 1785
cycles: out 2380, in 1780
cycles: out 2357, in 1785
cycles: out 2342, in 1783
cycles: out 1916, in 1294
cycles: out 2358, in 1768
cycles: out 2371, in 1763
cycles: out 2386, in 1783
cycles: out 1919, in 1320
cycles: out 2355, in 1782
cycles: out 2330, in 1787
cycles: out 2350, in 1781
cycles: out 1881, in 1269
cycles: out 2378, in 1768
cycles: out 2381, in 1739
cycles: out 2365, in 1768
cycles: out 2362, in 1759
cycles: out 2368, in 1739
cycles: out 2354, in 1775
cycles: out 2375, in 1783
cycles: out 2369, in 1785
cycles: out 2361, in 1769
cycles: out 2382, in 1785
cycles: out 2370, in 1783
--Edwin
next prev parent reply other threads:[~2007-12-12 17:28 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-11 23:31 [RFT] Port 0x80 I/O speed Rene Herman
2007-12-11 23:40 ` Maxim Levitsky
2007-12-11 23:44 ` Rene Herman
2007-12-12 0:14 ` Maxim Levitsky
2007-12-12 0:27 ` Rene Herman
2007-12-11 23:43 ` Alejandro Riveira Fernández
2007-12-11 23:51 ` Rene Herman
2007-12-12 0:09 ` Alejandro Riveira Fernández
2007-12-12 0:16 ` Rene Herman
2007-12-12 11:43 ` Alejandro Riveira Fernández
2007-12-12 21:02 ` H. Peter Anvin
[not found] ` <Pine.LNX.4.61.0712120753210.4443@chaos.analogic.com>
2007-12-12 13:20 ` Rene Herman
2007-12-12 13:23 ` linux-os (Dick Johnson)
2007-12-11 23:55 ` Nigel Cunningham
2007-12-12 0:01 ` Rene Herman
2007-12-12 2:07 ` Nigel Cunningham
2007-12-12 1:19 ` Alistair John Strachan
2007-12-12 1:28 ` Randy Dunlap
2007-12-12 1:40 ` Mike Lampard
2007-12-12 5:23 ` Kyle McMartin
2007-12-12 7:18 ` Rene Herman
2007-12-13 2:41 ` H. Peter Anvin
2007-12-12 19:25 ` H. Peter Anvin
2007-12-12 19:32 ` Andi Kleen
2007-12-12 19:43 ` H. Peter Anvin
2007-12-12 8:17 ` Paolo Ornati
2007-12-12 8:38 ` Edwin de Caluwé
2007-12-12 8:35 ` Dave Young
2007-12-12 8:48 ` Jiri Slaby
2007-12-12 11:25 ` Jiri Slaby
2007-12-12 15:50 ` Rene Herman
2007-12-12 15:53 ` Rene Herman
2007-12-12 18:44 ` H. Peter Anvin
2007-12-12 19:19 ` Rene Herman
2007-12-13 15:19 ` Jiri Slaby
2007-12-12 8:59 ` Juergen Beisert
2007-12-12 14:30 ` Rene Herman
2007-12-12 15:12 ` Juergen Beisert
2007-12-12 9:55 ` Luciano Rocha
2007-12-12 9:57 ` Romano Giannetti
2007-12-12 16:27 ` Rene Herman
2007-12-12 10:28 ` Peter Zijlstra
2007-12-12 10:34 ` Dave Haywood
2007-12-12 11:57 ` Ville Syrjälä
2007-12-13 16:42 ` Ville Syrjälä
2007-12-12 16:16 ` John Stoffel
2007-12-12 16:39 ` Olivér Pintér
2007-12-12 16:53 ` Ondrej Zary
2007-12-12 17:00 ` H. Peter Anvin
2007-12-12 16:59 ` Cyrill Gorcunov
2007-12-12 17:27 ` Török Edwin [this message]
2007-12-12 18:54 ` David P. Reed
2007-12-12 18:39 ` SL Baur
2007-12-12 19:06 ` Rene Herman
2007-12-12 21:32 ` Jesper Juhl
2007-12-12 23:54 ` Jan Engelhardt
2007-12-13 0:13 ` Jan Engelhardt
2007-12-13 2:06 ` H. Peter Anvin
2007-12-22 22:27 ` Bauke Jan Douma
-- strict thread matches above, loose matches on Subject: below --
2007-12-12 5:06 Chris Holvenstot
2007-12-12 11:20 linux
2007-12-12 12:35 ` Paolo Ornati
2007-12-12 14:48 ` Rene Herman
[not found] <9zmRR-3pA-25@gated-at.bofh.it>
2007-12-13 16:27 ` James Kosin
2007-12-13 22:07 ` Rene Herman
2007-12-13 22:30 ` Jesper Juhl
2007-12-13 22:37 ` Rene Herman
[not found] <9A0cz-7xy-13@gated-at.bofh.it>
[not found] ` <9A0cz-7xy-11@gated-at.bofh.it>
[not found] ` <9A4pU-69z-15@gated-at.bofh.it>
2007-12-14 14:08 ` James Kosin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47601A12.2040103@gmail.com \
--to=edwintorok@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@firstfloor.org \
--cc=david@davidnewall.com \
--cc=dpreed@reed.com \
--cc=hpa@zytor.com \
--cc=john@stoffel.org \
--cc=khc@pm.waw.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-os@analogic.com \
--cc=pavel@ucw.cz \
--cc=rene.herman@gmail.com \
--cc=rol@as2917.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.