* [Qemu-devel] [PULL for-2.4 0/1] virtio-rng: reduce wakeups
@ 2015-07-17 13:49 Amit Shah
2015-07-17 13:49 ` [Qemu-devel] [PULL for-2.4 1/1] virtio-rng: trigger timer only when guest requests for entropy Amit Shah
2015-07-20 10:02 ` [Qemu-devel] [PULL for-2.4 0/1] virtio-rng: reduce wakeups Peter Maydell
0 siblings, 2 replies; 3+ messages in thread
From: Amit Shah @ 2015-07-17 13:49 UTC (permalink / raw)
To: Peter Maydell; +Cc: Amit Shah, pagupta, qemu list
The following changes since commit 5b5e8cdd7da7a2214dd062afff5b866234aab228:
Merge remote-tracking branch 'remotes/kraxel/tags/pull-usb-20150717-1' into staging (2015-07-17 12:39:12 +0100)
are available in the git repository at:
https://git.kernel.org/pub/scm/virt/qemu/amit/virtio-rng.git tags/vrng-2.4
for you to fetch changes up to 621a20e08155179b1902c428361e80f41429f50d:
virtio-rng: trigger timer only when guest requests for entropy (2015-07-17 19:05:16 +0530)
----------------------------------------------------------------
Fire timer only when required. Brings down wakeups by a big number.
----------------------------------------------------------------
Pankaj Gupta (1):
virtio-rng: trigger timer only when guest requests for entropy
hw/virtio/virtio-rng.c | 15 ++++++++-------
include/hw/virtio/virtio-rng.h | 1 +
2 files changed, 9 insertions(+), 7 deletions(-)
--
2.4.3
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] [PULL for-2.4 1/1] virtio-rng: trigger timer only when guest requests for entropy
2015-07-17 13:49 [Qemu-devel] [PULL for-2.4 0/1] virtio-rng: reduce wakeups Amit Shah
@ 2015-07-17 13:49 ` Amit Shah
2015-07-20 10:02 ` [Qemu-devel] [PULL for-2.4 0/1] virtio-rng: reduce wakeups Peter Maydell
1 sibling, 0 replies; 3+ messages in thread
From: Amit Shah @ 2015-07-17 13:49 UTC (permalink / raw)
To: Peter Maydell; +Cc: Amit Shah, pagupta, qemu list
From: Pankaj Gupta <pagupta@redhat.com>
This patch triggers timer only when guest requests for
entropy. As soon as first request from guest for entropy
comes we set the timer. Timer bumps up the quota value
when it gets triggered.
Signed-off-by: Pankaj Gupta <pagupta@redhat.com>
Reviewed-by: Amit Shah <amit.shah@redhat.com>
Message-Id: <1436962608-9961-2-git-send-email-pagupta@redhat.com>
[Re-worded patch subject, removed extra whitespace -- Amit]
Signed-off-by: Amit Shah <amit.shah@redhat.com>
---
hw/virtio/virtio-rng.c | 15 ++++++++-------
include/hw/virtio/virtio-rng.h | 1 +
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c
index 740ed31..6e5f022 100644
--- a/hw/virtio/virtio-rng.c
+++ b/hw/virtio/virtio-rng.c
@@ -77,6 +77,12 @@ static void virtio_rng_process(VirtIORNG *vrng)
return;
}
+ if (vrng->activate_timer) {
+ timer_mod(vrng->rate_limit_timer,
+ qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + vrng->conf.period_ms);
+ vrng->activate_timer = false;
+ }
+
if (vrng->quota_remaining < 0) {
quota = 0;
} else {
@@ -138,8 +144,7 @@ static void check_rate_limit(void *opaque)
vrng->quota_remaining = vrng->conf.max_bytes;
virtio_rng_process(vrng);
- timer_mod(vrng->rate_limit_timer,
- qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + vrng->conf.period_ms);
+ vrng->activate_timer = true;
}
static void virtio_rng_device_realize(DeviceState *dev, Error **errp)
@@ -195,13 +200,9 @@ static void virtio_rng_device_realize(DeviceState *dev, Error **errp)
vrng->vq = virtio_add_queue(vdev, 8, handle_input);
vrng->quota_remaining = vrng->conf.max_bytes;
-
vrng->rate_limit_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL,
check_rate_limit, vrng);
-
- timer_mod(vrng->rate_limit_timer,
- qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + vrng->conf.period_ms);
-
+ vrng->activate_timer = true;
register_savevm(dev, "virtio-rng", -1, 1, virtio_rng_save,
virtio_rng_load, vrng);
}
diff --git a/include/hw/virtio/virtio-rng.h b/include/hw/virtio/virtio-rng.h
index 0316488..3f07de7 100644
--- a/include/hw/virtio/virtio-rng.h
+++ b/include/hw/virtio/virtio-rng.h
@@ -44,6 +44,7 @@ typedef struct VirtIORNG {
*/
QEMUTimer *rate_limit_timer;
int64_t quota_remaining;
+ bool activate_timer;
} VirtIORNG;
#endif
--
2.4.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PULL for-2.4 0/1] virtio-rng: reduce wakeups
2015-07-17 13:49 [Qemu-devel] [PULL for-2.4 0/1] virtio-rng: reduce wakeups Amit Shah
2015-07-17 13:49 ` [Qemu-devel] [PULL for-2.4 1/1] virtio-rng: trigger timer only when guest requests for entropy Amit Shah
@ 2015-07-20 10:02 ` Peter Maydell
1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2015-07-20 10:02 UTC (permalink / raw)
To: Amit Shah; +Cc: pagupta, qemu list
On 17 July 2015 at 14:49, Amit Shah <amit.shah@redhat.com> wrote:
> The following changes since commit 5b5e8cdd7da7a2214dd062afff5b866234aab228:
>
> Merge remote-tracking branch 'remotes/kraxel/tags/pull-usb-20150717-1' into staging (2015-07-17 12:39:12 +0100)
>
> are available in the git repository at:
>
> https://git.kernel.org/pub/scm/virt/qemu/amit/virtio-rng.git tags/vrng-2.4
>
> for you to fetch changes up to 621a20e08155179b1902c428361e80f41429f50d:
>
> virtio-rng: trigger timer only when guest requests for entropy (2015-07-17 19:05:16 +0530)
>
> ----------------------------------------------------------------
> Fire timer only when required. Brings down wakeups by a big number.
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-07-20 10:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-17 13:49 [Qemu-devel] [PULL for-2.4 0/1] virtio-rng: reduce wakeups Amit Shah
2015-07-17 13:49 ` [Qemu-devel] [PULL for-2.4 1/1] virtio-rng: trigger timer only when guest requests for entropy Amit Shah
2015-07-20 10:02 ` [Qemu-devel] [PULL for-2.4 0/1] virtio-rng: reduce wakeups Peter Maydell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.