[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] virtio-rng: correct the default limit rate
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] virtio-rng: correct the default limit rate |
Date: |
Tue, 26 Nov 2013 14:58:26 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 26/11/2013 14:43, Amos Kong ha scritto:
> /* Set a default rate limit of 2^47 bytes per minute or roughly 2TB/s. If
> * you have an entropy source capable of generating more entropy than this
> * and you can pass it through via virtio-rng, then hats off to you. Until
> * then, this is unlimited for all practical purposes.
> */
>
> But the current rate is (INT64_MAX) bytes per (1 << 16) ms, it's 128,000 TB/s
You are changing:
* max-bytes from 2^63 to 2^47
* period from 65536 to 60000
For a user, changing only period would have no effect, the limit rate
would remain effectively infinite. Changing max-bytes would give a 7%
higher rate after your patch.
Not a big deal, and max-bytes is easier to explain after your patch
(bytes/minute) than before (bytes/65536ms).
Reviewed-by: Paolo Bonzini <address@hidden>
> * change the default period to 60,000 ms --> 1 mins
> * change the default max-bytes to 2^47 bytes --> INT64_MAX >> 16
>
> INT64_MAX = 0x 8000 0000 0000 0000 - 1 = 2 ^ 63 - 1
> INT64_MAX >> 16 = 0x 8000 0000 0000 - 1 = 2 ^ 47
>
> Signed-off-by: Amos Kong <address@hidden>
> ---
> include/hw/virtio/virtio-rng.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/hw/virtio/virtio-rng.h b/include/hw/virtio/virtio-rng.h
> index debaa15..d64e804 100644
> --- a/include/hw/virtio/virtio-rng.h
> +++ b/include/hw/virtio/virtio-rng.h
> @@ -53,7 +53,7 @@ typedef struct VirtIORNG {
> */
> #define DEFINE_VIRTIO_RNG_PROPERTIES(_state, _conf_field)
> \
> DEFINE_PROP_UINT64("max-bytes", _state, _conf_field.max_bytes,
> \
> - INT64_MAX),
> \
> - DEFINE_PROP_UINT32("period", _state, _conf_field.period_ms, 1 << 16)
> + INT64_MAX >> 16),
> \
> + DEFINE_PROP_UINT32("period", _state, _conf_field.period_ms, 60000)