[libvirt] [PATCHv5] virtio-rng: Add rate limiting options for virtio-RNG

Daniel P. Berrange berrange at redhat.com
Wed Mar 13 14:30:08 UTC 2013


On Thu, Mar 07, 2013 at 02:09:50PM +0100, Peter Krempa wrote:
> Qemu's implementation of virtio RNG supports rate limiting of the
> entropy used. This patch exposes the option to tune this functionality.
> 
> This patch is based on qemu commit 904d6f588063fb5ad2b61998acdf1e73fb4
> 
> The rate limiting is exported in the XML as:
> <devices>
>   ...
>   <rng model='virtio'>
>     <rate period='1234'>4321</rate>

I find it wierd that we're mixing use of attributes with text
content here. I'd expect one style, or the other

eg

  <rate period="1234" bytes="4321"/>

or

  <rate>
    <period>1234</period>
    <bytes>5432</bytes>
  </rate>

I prefer the style using attributes myself.

> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 2509193..e19b5c0 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -1721,6 +1721,8 @@ enum virDomainRNGBackend {
>  struct _virDomainRNGDef {
>      int model;
>      int backend;
> +    unsigned int rate; /* bits per period */

Why are we using bits instead of bytes ?  Do we really need to
be able to control this rate with a granularity of bits? It seems
overkill to me

> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 201fac1..c0f8dd2 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -4255,6 +4255,15 @@ qemuBuildRNGDeviceArgs(virCommandPtr cmd,
> 
>      virBufferAsprintf(&buf, "virtio-rng-pci,rng=%s", dev->info.alias);
> 
> +    if (dev->rate > 0) {
> +        /* qemu uses bytes */
> +        virBufferAsprintf(&buf, ",max-bytes=%u", dev->rate / 8);

I expect we need to use  VIR_DIV_UP here ? Though we can avoid
it if we just store bytes ourselves.


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list