mirror of https://gitee.com/openkylin/linux.git
s390/vdso: ectg gettime support for CLOCK_THREAD_CPUTIME_ID
The code to use the ECTG instruction to calculate the cputime for the current thread is currently used only for the per-thread CPU-clock with the clockid -2 (PID=0, VIRT=1). Use the same code for the clockid CLOCK_THREAD_CPUTIME_ID to speed up the more common clockid as well. Reported-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
06aae6834e
commit
b5e64b3de7
|
@ -72,6 +72,7 @@ int main(void)
|
||||||
/* constants used by the vdso */
|
/* constants used by the vdso */
|
||||||
DEFINE(__CLOCK_REALTIME, CLOCK_REALTIME);
|
DEFINE(__CLOCK_REALTIME, CLOCK_REALTIME);
|
||||||
DEFINE(__CLOCK_MONOTONIC, CLOCK_MONOTONIC);
|
DEFINE(__CLOCK_MONOTONIC, CLOCK_MONOTONIC);
|
||||||
|
DEFINE(__CLOCK_THREAD_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID);
|
||||||
DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
|
DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
|
||||||
BLANK();
|
BLANK();
|
||||||
/* idle data offsets */
|
/* idle data offsets */
|
||||||
|
|
|
@ -23,7 +23,9 @@ __kernel_clock_getres:
|
||||||
je 0f
|
je 0f
|
||||||
cghi %r2,__CLOCK_MONOTONIC
|
cghi %r2,__CLOCK_MONOTONIC
|
||||||
je 0f
|
je 0f
|
||||||
cghi %r2,-2 /* CLOCK_THREAD_CPUTIME_ID for this thread */
|
cghi %r2,__CLOCK_THREAD_CPUTIME_ID
|
||||||
|
je 0f
|
||||||
|
cghi %r2,-2 /* Per-thread CPUCLOCK with PID=0, VIRT=1 */
|
||||||
jne 2f
|
jne 2f
|
||||||
larl %r5,_vdso_data
|
larl %r5,_vdso_data
|
||||||
icm %r0,15,__LC_ECTG_OK(%r5)
|
icm %r0,15,__LC_ECTG_OK(%r5)
|
||||||
|
|
|
@ -22,7 +22,9 @@ __kernel_clock_gettime:
|
||||||
larl %r5,_vdso_data
|
larl %r5,_vdso_data
|
||||||
cghi %r2,__CLOCK_REALTIME
|
cghi %r2,__CLOCK_REALTIME
|
||||||
je 4f
|
je 4f
|
||||||
cghi %r2,-2 /* CLOCK_THREAD_CPUTIME_ID for this thread */
|
cghi %r2,__CLOCK_THREAD_CPUTIME_ID
|
||||||
|
je 9f
|
||||||
|
cghi %r2,-2 /* Per-thread CPUCLOCK with PID=0, VIRT=1 */
|
||||||
je 9f
|
je 9f
|
||||||
cghi %r2,__CLOCK_MONOTONIC
|
cghi %r2,__CLOCK_MONOTONIC
|
||||||
jne 12f
|
jne 12f
|
||||||
|
|
Loading…
Reference in New Issue