diff options
| author | Heiko Carstens <hca@linux.ibm.com> | 2026-05-13 16:01:27 +0200 |
|---|---|---|
| committer | Alexander Gordeev <agordeev@linux.ibm.com> | 2026-06-15 16:33:40 +0200 |
| commit | 4fe307f0f5c1fa6afff9175f59930dcd39ee99fd (patch) | |
| tree | d1b9fcabbf5703419f1d425ac47bd0bcf538334b /drivers | |
| parent | fe47b8b1c0b8c502c090a3de7b1fe6412f0133da (diff) | |
s390/irq/idle: Use stcke instead of stckf for time stamps
The upcoming cpu idle time accounting rework involves comparing and
subtracting cross cpu time stamps. Time stamps created with the stckf
instruction monotonic with respect to the local cpu. For cross cpu
monotonic time stamps the slightly slower stcke instruction has to
be used [1].
Convert the idle time accounting relevant usages of stckf to stcke.
[1] Principles of Operation - Setting and Inspecting the Clock
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/s390/cio/qdio_main.c | 2 | ||||
| -rw-r--r-- | drivers/s390/cio/qdio_thinint.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 7e594a800525..c1e09fa34e77 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -695,7 +695,7 @@ static void qdio_int_handler_pci(struct qdio_irq *irq_ptr) return; qdio_deliver_irq(irq_ptr); - irq_ptr->last_data_irq_time = get_lowcore()->int_clock; + irq_ptr->last_data_irq_time = get_lowcore()->int_clock.tod; } static void qdio_handle_activate_check(struct qdio_irq *irq_ptr, diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c index 85ca8650adeb..e167aa75c3df 100644 --- a/drivers/s390/cio/qdio_thinint.c +++ b/drivers/s390/cio/qdio_thinint.c @@ -99,7 +99,7 @@ static inline u32 clear_shared_ind(void) static void tiqdio_thinint_handler(struct airq_struct *airq, struct tpi_info *tpi_info) { - u64 irq_time = get_lowcore()->int_clock; + u64 irq_time = get_lowcore()->int_clock.tod; u32 si_used = clear_shared_ind(); struct qdio_irq *irq; |
