History log of /src/sys/rump/librump/rumpkern/arch/x86/rump_x86_cpu_counter.c |
Revision | | Date | Author | Comments |
1.2 |
| 15-Jun-2020 |
msaitoh | Serialize rdtsc using with lfence, mfence or cpuid to read TSC more precisely.
x86/x86/tsc.c rev. 1.67 reduced cache problem and got big improvement, but it still has room. I measured the effect of lfence, mfence, cpuid and rdtscp. The impact to TSC skew and/or drift is:
AMD: mfence > rdtscp > cpuid > lfence-serialize > lfence = nomodify Intel: lfence > rdtscp > cpuid > nomodify
So, mfence is the best on AMD and lfence is the best on Intel. If it has no SSE2, we can use cpuid.
NOTE: - An AMD's document says DE_CFG_LFENCE_SERIALIZE bit can be used for serializing, but it's not so good. - On Intel i386(not amd64), it seems the improvement is very little. - rdtscp instruct can be used as serializing instruction + rdtsc, but it's not good as [lm]fence. Both Intel and AMD's document say that the latency of rdtscp is bigger than rdtsc, so I suspect the difference of the result comes from it.
|
1.1 |
| 12-Feb-2014 |
pooka | branches: 1.1.4; 1.1.6; 1.1.10; Rototill a bit, and attempt to disguise it as non-gratuitous.
Add arch/generic and move non-x86 files from rumpkern/ there. Also, move files from arch/i386 to arch/x86, and make both i386 and x86_64 use those.
This clarifies the situation with what is MD vs. MI code.
renames: rumpcpu_generic,kobj_stubs,pmap_stubs => arch/generic/rump_generic_$x arch/i386/* => arch/x86/rump_x86_$x
(for those who forget, x86 requires MD code because rump kernels use the same ABI as kernel modules)
|
1.1.10.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.1.10.1 |
| 12-Feb-2014 |
tls | file rump_x86_cpu_counter.c was added on branch tls-maxphys on 2014-08-20 00:04:41 +0000
|
1.1.6.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.1.6.1 |
| 12-Feb-2014 |
yamt | file rump_x86_cpu_counter.c was added on branch yamt-pagecache on 2014-05-22 11:41:15 +0000
|
1.1.4.2 |
| 18-May-2014 |
rmind | sync with head
|
1.1.4.1 |
| 12-Feb-2014 |
rmind | file rump_x86_cpu_counter.c was added on branch rmind-smpnet on 2014-05-18 17:46:19 +0000
|