[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V5] block/nfs: add support for setting debug lev
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH V5] block/nfs: add support for setting debug level |
Date: |
Tue, 10 Nov 2015 10:50:50 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, 11/09 08:09, Peter Lieven wrote:
> recent libnfs versions support logging debug messages. Add
> support for it in qemu through an URL parameter.
>
> Example:
> qemu -cdrom nfs://127.0.0.1/iso/my.iso?debug=2
>
> Signed-off-by: Peter Lieven <address@hidden>
> ---
> v4->v5: add a comment in the code why we limit the debug level [Stefan]
> v3->v4: revert to the initial version, but limit max debug level
> v2->v3: use a per-drive option instead of a global one. [Stefan]
> v1->v2: reworked patch to accept the debug level as a cmdline
> parameter instead of an URI parameter [Stefan]
>
> block/nfs.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/block/nfs.c b/block/nfs.c
> index fd79f89..ab1e267 100644
> --- a/block/nfs.c
> +++ b/block/nfs.c
> @@ -36,6 +36,7 @@
> #include <nfsc/libnfs.h>
>
> #define QEMU_NFS_MAX_READAHEAD_SIZE 1048576
> +#define QEMU_NFS_MAX_DEBUG_LEVEL 2
>
> typedef struct NFSClient {
> struct nfs_context *context;
> @@ -334,6 +335,17 @@ static int64_t nfs_client_open(NFSClient *client, const
> char *filename,
> }
> nfs_set_readahead(client->context, val);
> #endif
> +#ifdef LIBNFS_FEATURE_DEBUG
> + } else if (!strcmp(qp->p[i].name, "debug")) {
> + /* limit the maximum debug level to avoid potential flooding
> + * of our log files. */
> + if (val > QEMU_NFS_MAX_DEBUG_LEVEL) {
> + error_report("NFS Warning: Limiting NFS debug level"
> + " to %d", QEMU_NFS_MAX_DEBUG_LEVEL);
> + val = QEMU_NFS_MAX_DEBUG_LEVEL;
> + }
> + nfs_set_debug(client->context, val);
> +#endif
It would be slightly nicer to do:
} else if (!strcmp(qp->p[i].name, "debug")) {
#ifdef LIBNFS_FEATURE_DEBUG
/* limit the maximum debug level to avoid potential flooding
* of our log files. */
if (val > QEMU_NFS_MAX_DEBUG_LEVEL) {
error_report("NFS Warning: Limiting NFS debug level"
" to %d", QEMU_NFS_MAX_DEBUG_LEVEL);
val = QEMU_NFS_MAX_DEBUG_LEVEL;
}
nfs_set_debug(client->context, val);
#else
error_report("Specifying debug level is only supported by libnfs"
" version >= XXX");
#endif
So that you know which one out of QEMU and libnfs to upgrade when the option is
refused. :)
But it's your call. Either way:
Reviewed-by: Fam Zheng <address@hidden>
> } else {
> error_setg(errp, "Unknown NFS parameter name: %s",
> qp->p[i].name);
> --
> 1.9.1
>