Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5e64b3d authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

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: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 06aae683
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ int main(void)
	/* constants used by the vdso */
	DEFINE(__CLOCK_REALTIME, CLOCK_REALTIME);
	DEFINE(__CLOCK_MONOTONIC, CLOCK_MONOTONIC);
	DEFINE(__CLOCK_THREAD_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID);
	DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
	BLANK();
	/* idle data offsets */
+3 −1
Original line number Diff line number Diff line
@@ -23,7 +23,9 @@ __kernel_clock_getres:
	je	0f
	cghi	%r2,__CLOCK_MONOTONIC
	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
	larl	%r5,_vdso_data
	icm	%r0,15,__LC_ECTG_OK(%r5)
+3 −1
Original line number Diff line number Diff line
@@ -22,7 +22,9 @@ __kernel_clock_gettime:
	larl	%r5,_vdso_data
	cghi	%r2,__CLOCK_REALTIME
	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
	cghi	%r2,__CLOCK_MONOTONIC
	jne	12f