[libvirt] [PATCH v2] Allow to dynamically set the size of the debug buffer

Eric Blake eblake at redhat.com
Tue Mar 15 03:34:12 UTC 2011


On 03/09/2011 02:08 AM, Daniel Veillard wrote:
> Allow to dynamically set the size of the debug buffer
> 
> This is the part allowing to dynamically resize the debug log
> buffer from it's default 64kB size. The buffer is now dynamically
> allocated.
> It adds a new API virLogSetBufferSize() which resizes the buffer
> If passed a zero size, the buffer is deallocated and we do the small
> optimization of not formatting messages which are not output anymore.
> On the daemon side, it just adds a new option log_buffer_size to
> libvirtd.conf and call virLogSetBufferSize() if needed
> * src/util/logging.h src/util/logging.c src/libvirt_private.syms:
>   make buffer dynamic and add virLogSetBufferSize() internal API
> * daemon/libvirtd.conf: document the new log_buffer_size option
> * daemon/libvirtd.c: read and use the new log_buffer_size option
> 
> diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
> index 452566c..ad3274f 100644
> --- a/daemon/libvirtd.c
> +++ b/daemon/libvirtd.c
> @@ -2713,18 +2713,22 @@ remoteReadSaslAllowedUsernameList (virConfPtr conf ATTRIBUTE_UNUSED,
>   * Set up the logging environment
>   * By default if daemonized all errors go to the logfile libvirtd.log,
>   * but if verbose or error debugging is asked for then also output
> - * informations or debug.
> + * informations or debug. Default size if 64 kB.

s/informations or debug/informational and debug messages/

> +++ b/src/util/logging.c
> @@ -36,6 +36,7 @@
>  #endif
>  
>  #include "ignore-value.h"
> +#include "virterror_internal.h"
>  #include "logging.h"
>  #include "memory.h"
>  #include "util.h"
> @@ -43,6 +44,8 @@
>  #include "threads.h"
>  #include "files.h"
>  
> +#define VIR_FROM_THIS VIR_FROM_NONE

'make syntax-check' won't like you; you forgot to edit po/POTFILES.in.

> @@ -192,15 +197,85 @@ int virLogStartup(void) {
>  
>      virLogInitialized = 1;
>      virLogLock();
> +    if (VIR_ALLOC_N(virLogBuffer, virLogSize) < 0) {
> +        /*
> +         * The debug buffer is not a critical component, allow startup
> +         * even in case of failure to allocate it in case of a
> +         * configuration mistake.
> +         */
> +        virLogSize = 64000;

Do we really want the non-power-of-2 size here?  I guess it doesn't
hurt, since the user can also give us a non-power-of-2, but sometimes
enforcing the power-of-2 makes for nicer wrapping of a circular buffer.

> +        if (VIR_ALLOC_N(virLogBuffer, virLogSize) < 0) {
> +            pbm = "Failed to allocate debug buffer: desactivating debug log\n";

s/desactivating/deactivating/

ACK with those nits fixed.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

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


More information about the libvir-list mailing list