* [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.