|
@@ -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
|
|
@@ -35,13 +37,11 @@ __kernel_clock_gettime:
|
|
|
jnz 0b
|
|
|
stck 48(%r15) /* Store TOD clock */
|
|
|
lgf %r2,__VDSO_TK_SHIFT(%r5) /* Timekeeper shift */
|
|
|
- lg %r0,__VDSO_XTIME_SEC(%r5) /* tk->xtime_sec */
|
|
|
- alg %r0,__VDSO_WTOM_SEC(%r5) /* + wall_to_monotonic.sec */
|
|
|
+ lg %r0,__VDSO_WTOM_SEC(%r5)
|
|
|
lg %r1,48(%r15)
|
|
|
sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
|
|
|
msgf %r1,__VDSO_TK_MULT(%r5) /* * tk->mult */
|
|
|
- alg %r1,__VDSO_XTIME_NSEC(%r5) /* + tk->xtime_nsec */
|
|
|
- alg %r1,__VDSO_WTOM_NSEC(%r5) /* + wall_to_monotonic.nsec */
|
|
|
+ alg %r1,__VDSO_WTOM_NSEC(%r5)
|
|
|
srlg %r1,%r1,0(%r2) /* >> tk->shift */
|
|
|
clg %r4,__VDSO_UPD_COUNT(%r5) /* check update counter */
|
|
|
jne 0b
|