[libvirt] [PATCH] openvz: determine kb/pages only once

Eric Blake eblake at redhat.com
Thu May 10 22:54:59 UTC 2012


On 05/08/2012 02:12 PM, Guido Günther wrote:
> to safe some syscalls (as suggested by Eric Blake)

s/safe/save/

> ---
> I've moved the code into an extra module since there's some more code to
> come that should be shared between openvz_conf.c and openvz_driver.c
> Cheers,
>  -- Guido
> 
>  src/Makefile.am            |    3 ++-
>  src/openvz/openvz_conf.c   |   12 ++++-------
>  src/openvz/openvz_driver.c |   19 +++++------------
>  src/openvz/openvz_util.c   |   51 ++++++++++++++++++++++++++++++++++++++++++++
>  src/openvz/openvz_util.h   |   28 ++++++++++++++++++++++++
>  5 files changed, 90 insertions(+), 23 deletions(-)
>  create mode 100644 src/openvz/openvz_util.c
>  create mode 100644 src/openvz/openvz_util.h

This is quite a bit of churn for a micro-optimization, since it is not
fixing any actual bugs.  I'll review the code, but let's avoid applying
it until after 0.9.12 is released.


> +++ b/src/openvz/openvz_util.c
> @@ -0,0 +1,51 @@
> +/*
> + * openvz_driver.c: core driver methods for managing OpenVZ VEs
> + *
> + * Copyright (C) Guido Günther

Year?


> +    static long kb_per_pages = 0;
> +
> +    if (kb_per_pages == 0) {
> +        kb_per_pages = sysconf(_SC_PAGESIZE);
> +        if (kb_per_pages > 0) {
> +            kb_per_pages /= 1024;
> +        } else {
> +            openvzError(VIR_ERR_INTERNAL_ERROR,
> +                        _("Can't determine page size"));
> +            kb_per_pages = 0;
> +            return -1;

This says that in an error situation, every caller will repeat the
sysconf() call and issue a new error.  Seems reasonable.

ACK with copyright nit fixed, post-release.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120510/bb5eaf43/attachment-0001.sig>


More information about the libvir-list mailing list