[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC] [PATCHv7 05/22] aio / timers: Add prctl(PR_SET_TIMERS
From: |
Alex Bligh |
Subject: |
[Qemu-devel] [RFC] [PATCHv7 05/22] aio / timers: Add prctl(PR_SET_TIMERSLACK, 1, ...) to reduce timer slack |
Date: |
Wed, 7 Aug 2013 00:48:59 +0100 |
Where supported, called prctl(PR_SET_TIMERSLACK, 1, ...) to
set one nanosecond timer slack to increase precision of timer
calls.
Signed-off-by: Alex Bligh <address@hidden>
---
qemu-timer.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/qemu-timer.c b/qemu-timer.c
index 3109bd8..7ad05fb 100644
--- a/qemu-timer.c
+++ b/qemu-timer.c
@@ -41,6 +41,10 @@
#include <poll.h>
#endif
+#ifdef CONFIG_PRCTL_PR_SET_TIMERSLACK
+#include <sys/prctl.h>
+#endif
+
/***********************************************************/
/* timers */
@@ -508,10 +512,13 @@ void qemu_unregister_clock_reset_notifier(QEMUClock
*clock, Notifier *notifier)
void init_clocks(void)
{
if (!rt_clock) {
- rt_clock = qemu_new_clock(QEMU_CLOCK_REALTIME);
- vm_clock = qemu_new_clock(QEMU_CLOCK_VIRTUAL);
- host_clock = qemu_new_clock(QEMU_CLOCK_HOST);
+ rt_clock = qemu_clock_new(QEMU_CLOCK_REALTIME);
+ vm_clock = qemu_clock_new(QEMU_CLOCK_VIRTUAL);
+ host_clock = qemu_clock_new(QEMU_CLOCK_HOST);
}
+#ifdef CONFIG_PRCTL_PR_SET_TIMERSLACK
+ prctl(PR_SET_TIMERSLACK, 1, 0, 0, 0);
+#endif
}
uint64_t qemu_timer_expire_time_ns(QEMUTimer *ts)
--
1.7.9.5
- [Qemu-devel] [RFC] [PATCHv7 01/22] aio / timers: Add qemu_clock_free and expose qemu_clock_new and clock types, (continued)
- [Qemu-devel] [RFC] [PATCHv7 02/22] aio / timers: add qemu-timer.c utility functions, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 03/22] aio / timers: Consistent treatment of disabled clocks for deadlines, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 04/22] aio / timers: add ppoll support with qemu_poll_ns, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 05/22] aio / timers: Add prctl(PR_SET_TIMERSLACK, 1, ...) to reduce timer slack,
Alex Bligh <=
- [Qemu-devel] [RFC] [PATCHv7 06/22] aio / timers: Make qemu_run_timers and qemu_run_all_timers return progress, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 09/22] aio / timers: Add QEMUTimerListGroup and helper functions, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 10/22] aio / timers: Add QEMUTimerListGroup to AioContext, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 08/22] aio / timers: Untangle include files, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 12/22] aio / timers: aio_ctx_prepare sets timeout from AioContext timers, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 11/22] aio / timers: Add a notify callback to QEMUTimerList, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 07/22] aio / timers: Split QEMUClock into QEMUClock and QEMUTimerList, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 13/22] aio / timers: Add aio_timer_new wrapper, Alex Bligh, 2013/08/06
- [Qemu-devel] [RFC] [PATCHv7 14/22] aio / timers: Convert aio_poll to use AioContext timers' deadline, Alex Bligh, 2013/08/06