* [PATCH 09/11] tmem: reduce severity of log messages
@ 2012-09-05 12:39 Jan Beulich
2012-09-07 12:15 ` [PATCH 09/11, v2] " Jan Beulich
0 siblings, 1 reply; 9+ messages in thread
From: Jan Beulich @ 2012-09-05 12:39 UTC (permalink / raw)
To: xen-devel; +Cc: dan.magenheimer, Zhenzhong Duan
[-- Attachment #1: Type: text/plain, Size: 481 bytes --]
Otherwise they can be used by a guest to spam the hypervisor log with
all settings at their defaults.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -16,6 +16,7 @@
#ifdef __XEN__
#include <xen/tmem_xen.h> /* host-specific (eg Xen) code goes here */
+#define printk(fmt, args...) gdprintk(XENLOG_INFO, fmt, ##args)
#endif
#include <xen/tmem.h>
[-- Attachment #2: tmem-xsa-15-9.patch --]
[-- Type: text/plain, Size: 516 bytes --]
tmem: reduce severity of log messages
Otherwise they can be used by a guest to spam the hypervisor log with
all settings at their defaults.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -16,6 +16,7 @@
#ifdef __XEN__
#include <xen/tmem_xen.h> /* host-specific (eg Xen) code goes here */
+#define printk(fmt, args...) gdprintk(XENLOG_INFO, fmt, ##args)
#endif
#include <xen/tmem.h>
[-- Attachment #3: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 09/11, v2] tmem: reduce severity of log messages
2012-09-05 12:39 [PATCH 09/11] tmem: reduce severity of log messages Jan Beulich
@ 2012-09-07 12:15 ` Jan Beulich
2012-09-11 8:36 ` Ping: " Jan Beulich
0 siblings, 1 reply; 9+ messages in thread
From: Jan Beulich @ 2012-09-07 12:15 UTC (permalink / raw)
To: xen-devel; +Cc: dan.magenheimer, Ian Campbell, Zhenzhong Duan
[-- Attachment #1: Type: text/plain, Size: 12945 bytes --]
Otherwise they can be used by a guest to spam the hypervisor log when
all settings are at their defaults.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: As suggested by Ian, use separate abstraction for messages printed
in result of client side operations (so that e.g. the init time
system messages don't also get converted to guest level ones).
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -1107,7 +1107,7 @@ static int shared_pool_join(pool_t *pool
sl->client = new_client;
list_add_tail(&sl->share_list, &pool->share_list);
if ( new_client->cli_id != pool->client->cli_id )
- printk("adding new %s %d to shared pool owned by %s %d\n",
+ tmh_client_info("adding new %s %d to shared pool owned by %s %d\n",
client_str, new_client->cli_id, client_str, pool->client->cli_id);
return ++pool->shared_count;
}
@@ -1137,7 +1137,7 @@ static NOINLINE void shared_pool_reassig
old_client->eph_count -= _atomic_read(pool->pgp_count);
list_splice_init(&old_client->ephemeral_page_list,
&new_client->ephemeral_page_list);
- printk("reassigned shared pool from %s=%d to %s=%d pool_id=%d\n",
+ tmh_client_info("reassigned shared pool from %s=%d to %s=%d pool_id=%d\n",
cli_id_str, old_client->cli_id, cli_id_str, new_client->cli_id, poolid);
pool->pool_id = poolid;
}
@@ -1173,7 +1173,7 @@ static NOINLINE int shared_pool_quit(poo
}
return 0;
}
- printk("tmem: no match unsharing pool, %s=%d\n",
+ tmh_client_warn("tmem: no match unsharing pool, %s=%d\n",
cli_id_str,pool->client->cli_id);
return -1;
}
@@ -1184,17 +1184,18 @@ static void pool_flush(pool_t *pool, cli
ASSERT(pool != NULL);
if ( (is_shared(pool)) && (shared_pool_quit(pool,cli_id) > 0) )
{
- printk("tmem: %s=%d no longer using shared pool %d owned by %s=%d\n",
+ tmh_client_warn("tmem: %s=%d no longer using shared pool %d owned by %s=%d\n",
cli_id_str, cli_id, pool->pool_id, cli_id_str,pool->client->cli_id);
return;
}
- printk("%s %s-%s tmem pool ",destroy?"destroying":"flushing",
- is_persistent(pool) ? "persistent" : "ephemeral" ,
- is_shared(pool) ? "shared" : "private");
- printk("%s=%d pool_id=%d\n", cli_id_str,pool->client->cli_id,pool->pool_id);
+ tmh_client_info("%s %s-%s tmem pool %s=%d pool_id=%d\n",
+ destroy ? "destroying" : "flushing",
+ is_persistent(pool) ? "persistent" : "ephemeral" ,
+ is_shared(pool) ? "shared" : "private",
+ cli_id_str, pool->client->cli_id, pool->pool_id);
if ( pool->client->live_migrating )
{
- printk("can't %s pool while %s is live-migrating\n",
+ tmh_client_warn("can't %s pool while %s is live-migrating\n",
destroy?"destroy":"flush", client_str);
return;
}
@@ -1213,21 +1214,22 @@ static client_t *client_create(cli_id_t
client_t *client = tmh_alloc_infra(sizeof(client_t),__alignof__(client_t));
int i;
- printk("tmem: initializing tmem capability for %s=%d...",cli_id_str,cli_id);
+ tmh_client_info("tmem: initializing tmem capability for %s=%d...",
+ cli_id_str, cli_id);
if ( client == NULL )
{
- printk("failed... out of memory\n");
+ tmh_client_err("failed... out of memory\n");
goto fail;
}
memset(client,0,sizeof(client_t));
if ( (client->tmh = tmh_client_init(cli_id)) == NULL )
{
- printk("failed... can't allocate host-dependent part of client\n");
+ tmh_client_err("failed... can't allocate host-dependent part of client\n");
goto fail;
}
if ( !tmh_set_client_from_id(client, client->tmh, cli_id) )
{
- printk("failed... can't set client\n");
+ tmh_client_err("failed... can't set client\n");
goto fail;
}
client->cli_id = cli_id;
@@ -1249,7 +1251,7 @@ static client_t *client_create(cli_id_t
client->eph_count = client->eph_count_max = 0;
client->total_cycles = 0; client->succ_pers_puts = 0;
client->succ_eph_gets = 0; client->succ_pers_gets = 0;
- printk("ok\n");
+ tmh_client_info("ok\n");
return client;
fail:
@@ -1903,32 +1905,33 @@ static NOINLINE int do_tmem_new_pool(cli
cli_id = tmh_get_cli_id_from_current();
else
cli_id = this_cli_id;
- printk("tmem: allocating %s-%s tmem pool for %s=%d...",
+ tmh_client_info("tmem: allocating %s-%s tmem pool for %s=%d...",
persistent ? "persistent" : "ephemeral" ,
shared ? "shared" : "private", cli_id_str, cli_id);
if ( specversion != TMEM_SPEC_VERSION )
{
- printk("failed... unsupported spec version\n");
+ tmh_client_err("failed... unsupported spec version\n");
return -EPERM;
}
if ( pagebits != (PAGE_SHIFT - 12) )
{
- printk("failed... unsupported pagesize %d\n",1<<(pagebits+12));
+ tmh_client_err("failed... unsupported pagesize %d\n",
+ 1 << (pagebits + 12));
return -EPERM;
}
if ( flags & TMEM_POOL_PRECOMPRESSED )
{
- printk("failed... precompression flag set but unsupported\n");
+ tmh_client_err("failed... precompression flag set but unsupported\n");
return -EPERM;
}
if ( flags & TMEM_POOL_RESERVED_BITS )
{
- printk("failed... reserved bits must be zero\n");
+ tmh_client_err("failed... reserved bits must be zero\n");
return -EPERM;
}
if ( (pool = pool_alloc()) == NULL )
{
- printk("failed... out of memory\n");
+ tmh_client_err("failed... out of memory\n");
return -ENOMEM;
}
if ( this_cli_id != CLI_ID_NULL )
@@ -1947,7 +1950,7 @@ static NOINLINE int do_tmem_new_pool(cli
break;
if ( d_poolid >= MAX_POOLS_PER_DOMAIN )
{
- printk("failed... no more pool slots available for this %s\n",
+ tmh_client_err("failed... no more pool slots available for this %s\n",
client_str);
goto fail;
}
@@ -1977,9 +1980,8 @@ static NOINLINE int do_tmem_new_pool(cli
{
if ( shpool->uuid[0] == uuid_lo && shpool->uuid[1] == uuid_hi )
{
- printk("(matches shared pool uuid=%"PRIx64".%"PRIx64") ",
- uuid_hi, uuid_lo);
- printk("pool_id=%d\n",d_poolid);
+ tmh_client_info("(matches shared pool uuid=%"PRIx64".%"PRIx64") pool_id=%d\n",
+ uuid_hi, uuid_lo, d_poolid);
client->pools[d_poolid] = global_shared_pools[s_poolid];
shared_pool_join(global_shared_pools[s_poolid], client);
pool_free(pool);
@@ -1991,7 +1993,7 @@ static NOINLINE int do_tmem_new_pool(cli
}
if ( first_unused_s_poolid == MAX_GLOBAL_SHARED_POOLS )
{
- printk("tmem: failed... no global shared pool slots available\n");
+ tmh_client_warn("tmem: failed... no global shared pool slots available\n");
goto fail;
}
else
@@ -2007,7 +2009,7 @@ static NOINLINE int do_tmem_new_pool(cli
pool->pool_id = d_poolid;
pool->persistent = persistent;
pool->uuid[0] = uuid_lo; pool->uuid[1] = uuid_hi;
- printk("pool_id=%d\n",d_poolid);
+ tmh_client_info("pool_id=%d\n", d_poolid);
return d_poolid;
fail:
@@ -2030,14 +2032,15 @@ static int tmemc_freeze_pools(cli_id_t c
{
list_for_each_entry(client,&global_client_list,client_list)
client_freeze(client,freeze);
- printk("tmem: all pools %s for all %ss\n",s,client_str);
+ tmh_client_info("tmem: all pools %s for all %ss\n", s, client_str);
}
else
{
if ( (client = tmh_client_from_cli_id(cli_id)) == NULL)
return -1;
client_freeze(client,freeze);
- printk("tmem: all pools %s for %s=%d\n",s,cli_id_str,cli_id);
+ tmh_client_info("tmem: all pools %s for %s=%d\n",
+ s, cli_id_str, cli_id);
}
return 0;
}
@@ -2048,7 +2051,7 @@ static int tmemc_flush_mem(cli_id_t cli_
if ( cli_id != CLI_ID_NULL )
{
- printk("tmem: %s-specific flush not supported yet, use --all\n",
+ tmh_client_warn("tmem: %s-specific flush not supported yet, use --all\n",
client_str);
return -1;
}
@@ -2261,13 +2264,15 @@ static int tmemc_set_var_one(client_t *c
case TMEMC_SET_WEIGHT:
old_weight = client->weight;
client->weight = arg1;
- printk("tmem: weight set to %d for %s=%d\n",arg1,cli_id_str,cli_id);
+ tmh_client_info("tmem: weight set to %d for %s=%d\n",
+ arg1, cli_id_str, cli_id);
atomic_sub(old_weight,&client_weight_total);
atomic_add(client->weight,&client_weight_total);
break;
case TMEMC_SET_CAP:
client->cap = arg1;
- printk("tmem: cap set to %d for %s=%d\n",arg1,cli_id_str,cli_id);
+ tmh_client_info("tmem: cap set to %d for %s=%d\n",
+ arg1, cli_id_str, cli_id);
break;
case TMEMC_SET_COMPRESS:
#ifdef __i386__
@@ -2275,17 +2280,17 @@ static int tmemc_set_var_one(client_t *c
#endif
if ( tmh_dedup_enabled() )
{
- printk("tmem: compression %s for all %ss, cannot be changed "
- "when tmem_dedup is enabled\n",
- tmh_compression_enabled() ? "enabled" : "disabled",client_str);
+ tmh_client_warn("tmem: compression %s for all %ss, cannot be changed when tmem_dedup is enabled\n",
+ tmh_compression_enabled() ? "enabled" : "disabled",
+ client_str);
return -1;
}
client->compress = arg1 ? 1 : 0;
- printk("tmem: compression %s for %s=%d\n",
+ tmh_client_info("tmem: compression %s for %s=%d\n",
arg1 ? "enabled" : "disabled",cli_id_str,cli_id);
break;
default:
- printk("tmem: unknown subop %d for tmemc_set_var\n",subop);
+ tmh_client_warn("tmem: unknown subop %d for tmemc_set_var\n", subop);
return -1;
}
return 0;
@@ -2668,7 +2673,7 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
if ( unlikely(tmh_get_tmemop_from_client(&op, uops) != 0) )
{
- printk("tmem: can't get tmem struct from %s\n",client_str);
+ tmh_client_err("tmem: can't get tmem struct from %s\n", client_str);
rc = -EFAULT;
if ( !tmh_lock_all )
goto simple_error;
@@ -2702,7 +2707,8 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
tmem_write_lock_set = 1;
if ( (client = client_create(tmh_get_cli_id_from_current())) == NULL )
{
- printk("tmem: can't create tmem structure for %s\n",client_str);
+ tmh_client_err("tmem: can't create tmem structure for %s\n",
+ client_str);
rc = -ENOMEM;
goto out;
}
@@ -2726,8 +2732,8 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
if ( ((uint32_t)op.pool_id >= MAX_POOLS_PER_DOMAIN) ||
((pool = client->pools[op.pool_id]) == NULL) )
{
+ tmh_client_err("tmem: operation requested on uncreated pool\n");
rc = -ENODEV;
- printk("tmem: operation requested on uncreated pool\n");
goto out;
}
ASSERT_SENTINEL(pool,POOL);
@@ -2783,11 +2789,11 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
break;
case TMEM_XCHG:
/* need to hold global lock to ensure xchg is atomic */
- printk("tmem_xchg op not implemented yet\n");
+ tmh_client_warn("tmem_xchg op not implemented yet\n");
rc = 0;
break;
default:
- printk("tmem: op %d not implemented\n", op.cmd);
+ tmh_client_warn("tmem: op %d not implemented\n", op.cmd);
rc = 0;
break;
}
--- a/xen/include/xen/tmem_xen.h
+++ b/xen/include/xen/tmem_xen.h
@@ -512,6 +512,9 @@ int tmh_copy_to_client(tmem_cli_mfn_t, p
extern int tmh_copy_tze_to_client(tmem_cli_mfn_t cmfn, void *tmem_va, pagesize_t len);
+#define tmh_client_err(fmt, args...) printk(XENLOG_G_ERR fmt, ##args)
+#define tmh_client_warn(fmt, args...) printk(XENLOG_G_WARNING fmt, ##args)
+#define tmh_client_info(fmt, args...) printk(XENLOG_G_INFO fmt, ##args)
#define TMEM_PERF
#ifdef TMEM_PERF
[-- Attachment #2: tmem-xsa-15-9.patch --]
[-- Type: text/plain, Size: 12982 bytes --]
tmem: reduce severity of log messages
Otherwise they can be used by a guest to spam the hypervisor log when
all settings are at their defaults.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: As suggested by Ian, use separate abstraction for messages printed
in result of client side operations (so that e.g. the init time
system messages don't also get converted to guest level ones).
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -1107,7 +1107,7 @@ static int shared_pool_join(pool_t *pool
sl->client = new_client;
list_add_tail(&sl->share_list, &pool->share_list);
if ( new_client->cli_id != pool->client->cli_id )
- printk("adding new %s %d to shared pool owned by %s %d\n",
+ tmh_client_info("adding new %s %d to shared pool owned by %s %d\n",
client_str, new_client->cli_id, client_str, pool->client->cli_id);
return ++pool->shared_count;
}
@@ -1137,7 +1137,7 @@ static NOINLINE void shared_pool_reassig
old_client->eph_count -= _atomic_read(pool->pgp_count);
list_splice_init(&old_client->ephemeral_page_list,
&new_client->ephemeral_page_list);
- printk("reassigned shared pool from %s=%d to %s=%d pool_id=%d\n",
+ tmh_client_info("reassigned shared pool from %s=%d to %s=%d pool_id=%d\n",
cli_id_str, old_client->cli_id, cli_id_str, new_client->cli_id, poolid);
pool->pool_id = poolid;
}
@@ -1173,7 +1173,7 @@ static NOINLINE int shared_pool_quit(poo
}
return 0;
}
- printk("tmem: no match unsharing pool, %s=%d\n",
+ tmh_client_warn("tmem: no match unsharing pool, %s=%d\n",
cli_id_str,pool->client->cli_id);
return -1;
}
@@ -1184,17 +1184,18 @@ static void pool_flush(pool_t *pool, cli
ASSERT(pool != NULL);
if ( (is_shared(pool)) && (shared_pool_quit(pool,cli_id) > 0) )
{
- printk("tmem: %s=%d no longer using shared pool %d owned by %s=%d\n",
+ tmh_client_warn("tmem: %s=%d no longer using shared pool %d owned by %s=%d\n",
cli_id_str, cli_id, pool->pool_id, cli_id_str,pool->client->cli_id);
return;
}
- printk("%s %s-%s tmem pool ",destroy?"destroying":"flushing",
- is_persistent(pool) ? "persistent" : "ephemeral" ,
- is_shared(pool) ? "shared" : "private");
- printk("%s=%d pool_id=%d\n", cli_id_str,pool->client->cli_id,pool->pool_id);
+ tmh_client_info("%s %s-%s tmem pool %s=%d pool_id=%d\n",
+ destroy ? "destroying" : "flushing",
+ is_persistent(pool) ? "persistent" : "ephemeral" ,
+ is_shared(pool) ? "shared" : "private",
+ cli_id_str, pool->client->cli_id, pool->pool_id);
if ( pool->client->live_migrating )
{
- printk("can't %s pool while %s is live-migrating\n",
+ tmh_client_warn("can't %s pool while %s is live-migrating\n",
destroy?"destroy":"flush", client_str);
return;
}
@@ -1213,21 +1214,22 @@ static client_t *client_create(cli_id_t
client_t *client = tmh_alloc_infra(sizeof(client_t),__alignof__(client_t));
int i;
- printk("tmem: initializing tmem capability for %s=%d...",cli_id_str,cli_id);
+ tmh_client_info("tmem: initializing tmem capability for %s=%d...",
+ cli_id_str, cli_id);
if ( client == NULL )
{
- printk("failed... out of memory\n");
+ tmh_client_err("failed... out of memory\n");
goto fail;
}
memset(client,0,sizeof(client_t));
if ( (client->tmh = tmh_client_init(cli_id)) == NULL )
{
- printk("failed... can't allocate host-dependent part of client\n");
+ tmh_client_err("failed... can't allocate host-dependent part of client\n");
goto fail;
}
if ( !tmh_set_client_from_id(client, client->tmh, cli_id) )
{
- printk("failed... can't set client\n");
+ tmh_client_err("failed... can't set client\n");
goto fail;
}
client->cli_id = cli_id;
@@ -1249,7 +1251,7 @@ static client_t *client_create(cli_id_t
client->eph_count = client->eph_count_max = 0;
client->total_cycles = 0; client->succ_pers_puts = 0;
client->succ_eph_gets = 0; client->succ_pers_gets = 0;
- printk("ok\n");
+ tmh_client_info("ok\n");
return client;
fail:
@@ -1903,32 +1905,33 @@ static NOINLINE int do_tmem_new_pool(cli
cli_id = tmh_get_cli_id_from_current();
else
cli_id = this_cli_id;
- printk("tmem: allocating %s-%s tmem pool for %s=%d...",
+ tmh_client_info("tmem: allocating %s-%s tmem pool for %s=%d...",
persistent ? "persistent" : "ephemeral" ,
shared ? "shared" : "private", cli_id_str, cli_id);
if ( specversion != TMEM_SPEC_VERSION )
{
- printk("failed... unsupported spec version\n");
+ tmh_client_err("failed... unsupported spec version\n");
return -EPERM;
}
if ( pagebits != (PAGE_SHIFT - 12) )
{
- printk("failed... unsupported pagesize %d\n",1<<(pagebits+12));
+ tmh_client_err("failed... unsupported pagesize %d\n",
+ 1 << (pagebits + 12));
return -EPERM;
}
if ( flags & TMEM_POOL_PRECOMPRESSED )
{
- printk("failed... precompression flag set but unsupported\n");
+ tmh_client_err("failed... precompression flag set but unsupported\n");
return -EPERM;
}
if ( flags & TMEM_POOL_RESERVED_BITS )
{
- printk("failed... reserved bits must be zero\n");
+ tmh_client_err("failed... reserved bits must be zero\n");
return -EPERM;
}
if ( (pool = pool_alloc()) == NULL )
{
- printk("failed... out of memory\n");
+ tmh_client_err("failed... out of memory\n");
return -ENOMEM;
}
if ( this_cli_id != CLI_ID_NULL )
@@ -1947,7 +1950,7 @@ static NOINLINE int do_tmem_new_pool(cli
break;
if ( d_poolid >= MAX_POOLS_PER_DOMAIN )
{
- printk("failed... no more pool slots available for this %s\n",
+ tmh_client_err("failed... no more pool slots available for this %s\n",
client_str);
goto fail;
}
@@ -1977,9 +1980,8 @@ static NOINLINE int do_tmem_new_pool(cli
{
if ( shpool->uuid[0] == uuid_lo && shpool->uuid[1] == uuid_hi )
{
- printk("(matches shared pool uuid=%"PRIx64".%"PRIx64") ",
- uuid_hi, uuid_lo);
- printk("pool_id=%d\n",d_poolid);
+ tmh_client_info("(matches shared pool uuid=%"PRIx64".%"PRIx64") pool_id=%d\n",
+ uuid_hi, uuid_lo, d_poolid);
client->pools[d_poolid] = global_shared_pools[s_poolid];
shared_pool_join(global_shared_pools[s_poolid], client);
pool_free(pool);
@@ -1991,7 +1993,7 @@ static NOINLINE int do_tmem_new_pool(cli
}
if ( first_unused_s_poolid == MAX_GLOBAL_SHARED_POOLS )
{
- printk("tmem: failed... no global shared pool slots available\n");
+ tmh_client_warn("tmem: failed... no global shared pool slots available\n");
goto fail;
}
else
@@ -2007,7 +2009,7 @@ static NOINLINE int do_tmem_new_pool(cli
pool->pool_id = d_poolid;
pool->persistent = persistent;
pool->uuid[0] = uuid_lo; pool->uuid[1] = uuid_hi;
- printk("pool_id=%d\n",d_poolid);
+ tmh_client_info("pool_id=%d\n", d_poolid);
return d_poolid;
fail:
@@ -2030,14 +2032,15 @@ static int tmemc_freeze_pools(cli_id_t c
{
list_for_each_entry(client,&global_client_list,client_list)
client_freeze(client,freeze);
- printk("tmem: all pools %s for all %ss\n",s,client_str);
+ tmh_client_info("tmem: all pools %s for all %ss\n", s, client_str);
}
else
{
if ( (client = tmh_client_from_cli_id(cli_id)) == NULL)
return -1;
client_freeze(client,freeze);
- printk("tmem: all pools %s for %s=%d\n",s,cli_id_str,cli_id);
+ tmh_client_info("tmem: all pools %s for %s=%d\n",
+ s, cli_id_str, cli_id);
}
return 0;
}
@@ -2048,7 +2051,7 @@ static int tmemc_flush_mem(cli_id_t cli_
if ( cli_id != CLI_ID_NULL )
{
- printk("tmem: %s-specific flush not supported yet, use --all\n",
+ tmh_client_warn("tmem: %s-specific flush not supported yet, use --all\n",
client_str);
return -1;
}
@@ -2261,13 +2264,15 @@ static int tmemc_set_var_one(client_t *c
case TMEMC_SET_WEIGHT:
old_weight = client->weight;
client->weight = arg1;
- printk("tmem: weight set to %d for %s=%d\n",arg1,cli_id_str,cli_id);
+ tmh_client_info("tmem: weight set to %d for %s=%d\n",
+ arg1, cli_id_str, cli_id);
atomic_sub(old_weight,&client_weight_total);
atomic_add(client->weight,&client_weight_total);
break;
case TMEMC_SET_CAP:
client->cap = arg1;
- printk("tmem: cap set to %d for %s=%d\n",arg1,cli_id_str,cli_id);
+ tmh_client_info("tmem: cap set to %d for %s=%d\n",
+ arg1, cli_id_str, cli_id);
break;
case TMEMC_SET_COMPRESS:
#ifdef __i386__
@@ -2275,17 +2280,17 @@ static int tmemc_set_var_one(client_t *c
#endif
if ( tmh_dedup_enabled() )
{
- printk("tmem: compression %s for all %ss, cannot be changed "
- "when tmem_dedup is enabled\n",
- tmh_compression_enabled() ? "enabled" : "disabled",client_str);
+ tmh_client_warn("tmem: compression %s for all %ss, cannot be changed when tmem_dedup is enabled\n",
+ tmh_compression_enabled() ? "enabled" : "disabled",
+ client_str);
return -1;
}
client->compress = arg1 ? 1 : 0;
- printk("tmem: compression %s for %s=%d\n",
+ tmh_client_info("tmem: compression %s for %s=%d\n",
arg1 ? "enabled" : "disabled",cli_id_str,cli_id);
break;
default:
- printk("tmem: unknown subop %d for tmemc_set_var\n",subop);
+ tmh_client_warn("tmem: unknown subop %d for tmemc_set_var\n", subop);
return -1;
}
return 0;
@@ -2668,7 +2673,7 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
if ( unlikely(tmh_get_tmemop_from_client(&op, uops) != 0) )
{
- printk("tmem: can't get tmem struct from %s\n",client_str);
+ tmh_client_err("tmem: can't get tmem struct from %s\n", client_str);
rc = -EFAULT;
if ( !tmh_lock_all )
goto simple_error;
@@ -2702,7 +2707,8 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
tmem_write_lock_set = 1;
if ( (client = client_create(tmh_get_cli_id_from_current())) == NULL )
{
- printk("tmem: can't create tmem structure for %s\n",client_str);
+ tmh_client_err("tmem: can't create tmem structure for %s\n",
+ client_str);
rc = -ENOMEM;
goto out;
}
@@ -2726,8 +2732,8 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
if ( ((uint32_t)op.pool_id >= MAX_POOLS_PER_DOMAIN) ||
((pool = client->pools[op.pool_id]) == NULL) )
{
+ tmh_client_err("tmem: operation requested on uncreated pool\n");
rc = -ENODEV;
- printk("tmem: operation requested on uncreated pool\n");
goto out;
}
ASSERT_SENTINEL(pool,POOL);
@@ -2783,11 +2789,11 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
break;
case TMEM_XCHG:
/* need to hold global lock to ensure xchg is atomic */
- printk("tmem_xchg op not implemented yet\n");
+ tmh_client_warn("tmem_xchg op not implemented yet\n");
rc = 0;
break;
default:
- printk("tmem: op %d not implemented\n", op.cmd);
+ tmh_client_warn("tmem: op %d not implemented\n", op.cmd);
rc = 0;
break;
}
--- a/xen/include/xen/tmem_xen.h
+++ b/xen/include/xen/tmem_xen.h
@@ -512,6 +512,9 @@ int tmh_copy_to_client(tmem_cli_mfn_t, p
extern int tmh_copy_tze_to_client(tmem_cli_mfn_t cmfn, void *tmem_va, pagesize_t len);
+#define tmh_client_err(fmt, args...) printk(XENLOG_G_ERR fmt, ##args)
+#define tmh_client_warn(fmt, args...) printk(XENLOG_G_WARNING fmt, ##args)
+#define tmh_client_info(fmt, args...) printk(XENLOG_G_INFO fmt, ##args)
#define TMEM_PERF
#ifdef TMEM_PERF
[-- Attachment #3: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
2012-09-07 12:15 ` [PATCH 09/11, v2] " Jan Beulich
@ 2012-09-11 8:36 ` Jan Beulich
2012-09-11 9:18 ` DuanZhenzhong
0 siblings, 1 reply; 9+ messages in thread
From: Jan Beulich @ 2012-09-11 8:36 UTC (permalink / raw)
To: dan.magenheimer, Zhenzhong Duan; +Cc: Ian Campbell, xen-devel
I was hoping to get this series (and the supposedly trivial tools
side fix for save/restore) into the tree, but this patch is lacking
an ack...
Jan
>>> On 07.09.12 at 14:15, "Jan Beulich" <JBeulich@suse.com> wrote:
> Otherwise they can be used by a guest to spam the hypervisor log when
> all settings are at their defaults.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v2: As suggested by Ian, use separate abstraction for messages printed
> in result of client side operations (so that e.g. the init time
> system messages don't also get converted to guest level ones).
>
> --- a/xen/common/tmem.c
> +++ b/xen/common/tmem.c
> @@ -1107,7 +1107,7 @@ static int shared_pool_join(pool_t *pool
> sl->client = new_client;
> list_add_tail(&sl->share_list, &pool->share_list);
> if ( new_client->cli_id != pool->client->cli_id )
> - printk("adding new %s %d to shared pool owned by %s %d\n",
> + tmh_client_info("adding new %s %d to shared pool owned by %s %d\n",
> client_str, new_client->cli_id, client_str, pool->client->cli_id);
> return ++pool->shared_count;
> }
> @@ -1137,7 +1137,7 @@ static NOINLINE void shared_pool_reassig
> old_client->eph_count -= _atomic_read(pool->pgp_count);
> list_splice_init(&old_client->ephemeral_page_list,
> &new_client->ephemeral_page_list);
> - printk("reassigned shared pool from %s=%d to %s=%d pool_id=%d\n",
> + tmh_client_info("reassigned shared pool from %s=%d to %s=%d
> pool_id=%d\n",
> cli_id_str, old_client->cli_id, cli_id_str, new_client->cli_id,
> poolid);
> pool->pool_id = poolid;
> }
> @@ -1173,7 +1173,7 @@ static NOINLINE int shared_pool_quit(poo
> }
> return 0;
> }
> - printk("tmem: no match unsharing pool, %s=%d\n",
> + tmh_client_warn("tmem: no match unsharing pool, %s=%d\n",
> cli_id_str,pool->client->cli_id);
> return -1;
> }
> @@ -1184,17 +1184,18 @@ static void pool_flush(pool_t *pool, cli
> ASSERT(pool != NULL);
> if ( (is_shared(pool)) && (shared_pool_quit(pool,cli_id) > 0) )
> {
> - printk("tmem: %s=%d no longer using shared pool %d owned by
> %s=%d\n",
> + tmh_client_warn("tmem: %s=%d no longer using shared pool %d owned
> by %s=%d\n",
> cli_id_str, cli_id, pool->pool_id, cli_id_str,pool->client->cli_id);
> return;
> }
> - printk("%s %s-%s tmem pool ",destroy?"destroying":"flushing",
> - is_persistent(pool) ? "persistent" : "ephemeral" ,
> - is_shared(pool) ? "shared" : "private");
> - printk("%s=%d pool_id=%d\n", cli_id_str,pool->client->cli_id,pool->pool_id);
> + tmh_client_info("%s %s-%s tmem pool %s=%d pool_id=%d\n",
> + destroy ? "destroying" : "flushing",
> + is_persistent(pool) ? "persistent" : "ephemeral" ,
> + is_shared(pool) ? "shared" : "private",
> + cli_id_str, pool->client->cli_id, pool->pool_id);
> if ( pool->client->live_migrating )
> {
> - printk("can't %s pool while %s is live-migrating\n",
> + tmh_client_warn("can't %s pool while %s is live-migrating\n",
> destroy?"destroy":"flush", client_str);
> return;
> }
> @@ -1213,21 +1214,22 @@ static client_t *client_create(cli_id_t
> client_t *client =
> tmh_alloc_infra(sizeof(client_t),__alignof__(client_t));
> int i;
>
> - printk("tmem: initializing tmem capability for
> %s=%d...",cli_id_str,cli_id);
> + tmh_client_info("tmem: initializing tmem capability for %s=%d...",
> + cli_id_str, cli_id);
> if ( client == NULL )
> {
> - printk("failed... out of memory\n");
> + tmh_client_err("failed... out of memory\n");
> goto fail;
> }
> memset(client,0,sizeof(client_t));
> if ( (client->tmh = tmh_client_init(cli_id)) == NULL )
> {
> - printk("failed... can't allocate host-dependent part of client\n");
> + tmh_client_err("failed... can't allocate host-dependent part of
> client\n");
> goto fail;
> }
> if ( !tmh_set_client_from_id(client, client->tmh, cli_id) )
> {
> - printk("failed... can't set client\n");
> + tmh_client_err("failed... can't set client\n");
> goto fail;
> }
> client->cli_id = cli_id;
> @@ -1249,7 +1251,7 @@ static client_t *client_create(cli_id_t
> client->eph_count = client->eph_count_max = 0;
> client->total_cycles = 0; client->succ_pers_puts = 0;
> client->succ_eph_gets = 0; client->succ_pers_gets = 0;
> - printk("ok\n");
> + tmh_client_info("ok\n");
> return client;
>
> fail:
> @@ -1903,32 +1905,33 @@ static NOINLINE int do_tmem_new_pool(cli
> cli_id = tmh_get_cli_id_from_current();
> else
> cli_id = this_cli_id;
> - printk("tmem: allocating %s-%s tmem pool for %s=%d...",
> + tmh_client_info("tmem: allocating %s-%s tmem pool for %s=%d...",
> persistent ? "persistent" : "ephemeral" ,
> shared ? "shared" : "private", cli_id_str, cli_id);
> if ( specversion != TMEM_SPEC_VERSION )
> {
> - printk("failed... unsupported spec version\n");
> + tmh_client_err("failed... unsupported spec version\n");
> return -EPERM;
> }
> if ( pagebits != (PAGE_SHIFT - 12) )
> {
> - printk("failed... unsupported pagesize %d\n",1<<(pagebits+12));
> + tmh_client_err("failed... unsupported pagesize %d\n",
> + 1 << (pagebits + 12));
> return -EPERM;
> }
> if ( flags & TMEM_POOL_PRECOMPRESSED )
> {
> - printk("failed... precompression flag set but unsupported\n");
> + tmh_client_err("failed... precompression flag set but
> unsupported\n");
> return -EPERM;
> }
> if ( flags & TMEM_POOL_RESERVED_BITS )
> {
> - printk("failed... reserved bits must be zero\n");
> + tmh_client_err("failed... reserved bits must be zero\n");
> return -EPERM;
> }
> if ( (pool = pool_alloc()) == NULL )
> {
> - printk("failed... out of memory\n");
> + tmh_client_err("failed... out of memory\n");
> return -ENOMEM;
> }
> if ( this_cli_id != CLI_ID_NULL )
> @@ -1947,7 +1950,7 @@ static NOINLINE int do_tmem_new_pool(cli
> break;
> if ( d_poolid >= MAX_POOLS_PER_DOMAIN )
> {
> - printk("failed... no more pool slots available for this %s\n",
> + tmh_client_err("failed... no more pool slots available for this
> %s\n",
> client_str);
> goto fail;
> }
> @@ -1977,9 +1980,8 @@ static NOINLINE int do_tmem_new_pool(cli
> {
> if ( shpool->uuid[0] == uuid_lo && shpool->uuid[1] == uuid_hi )
> {
> - printk("(matches shared pool uuid=%"PRIx64".%"PRIx64")
> ",
> - uuid_hi, uuid_lo);
> - printk("pool_id=%d\n",d_poolid);
> + tmh_client_info("(matches shared pool
> uuid=%"PRIx64".%"PRIx64") pool_id=%d\n",
> + uuid_hi, uuid_lo, d_poolid);
> client->pools[d_poolid] = global_shared_pools[s_poolid];
> shared_pool_join(global_shared_pools[s_poolid],
> client);
> pool_free(pool);
> @@ -1991,7 +1993,7 @@ static NOINLINE int do_tmem_new_pool(cli
> }
> if ( first_unused_s_poolid == MAX_GLOBAL_SHARED_POOLS )
> {
> - printk("tmem: failed... no global shared pool slots
> available\n");
> + tmh_client_warn("tmem: failed... no global shared pool slots
> available\n");
> goto fail;
> }
> else
> @@ -2007,7 +2009,7 @@ static NOINLINE int do_tmem_new_pool(cli
> pool->pool_id = d_poolid;
> pool->persistent = persistent;
> pool->uuid[0] = uuid_lo; pool->uuid[1] = uuid_hi;
> - printk("pool_id=%d\n",d_poolid);
> + tmh_client_info("pool_id=%d\n", d_poolid);
> return d_poolid;
>
> fail:
> @@ -2030,14 +2032,15 @@ static int tmemc_freeze_pools(cli_id_t c
> {
> list_for_each_entry(client,&global_client_list,client_list)
> client_freeze(client,freeze);
> - printk("tmem: all pools %s for all %ss\n",s,client_str);
> + tmh_client_info("tmem: all pools %s for all %ss\n", s, client_str);
> }
> else
> {
> if ( (client = tmh_client_from_cli_id(cli_id)) == NULL)
> return -1;
> client_freeze(client,freeze);
> - printk("tmem: all pools %s for %s=%d\n",s,cli_id_str,cli_id);
> + tmh_client_info("tmem: all pools %s for %s=%d\n",
> + s, cli_id_str, cli_id);
> }
> return 0;
> }
> @@ -2048,7 +2051,7 @@ static int tmemc_flush_mem(cli_id_t cli_
>
> if ( cli_id != CLI_ID_NULL )
> {
> - printk("tmem: %s-specific flush not supported yet, use --all\n",
> + tmh_client_warn("tmem: %s-specific flush not supported yet, use
> --all\n",
> client_str);
> return -1;
> }
> @@ -2261,13 +2264,15 @@ static int tmemc_set_var_one(client_t *c
> case TMEMC_SET_WEIGHT:
> old_weight = client->weight;
> client->weight = arg1;
> - printk("tmem: weight set to %d for %s=%d\n",arg1,cli_id_str,cli_id);
> + tmh_client_info("tmem: weight set to %d for %s=%d\n",
> + arg1, cli_id_str, cli_id);
> atomic_sub(old_weight,&client_weight_total);
> atomic_add(client->weight,&client_weight_total);
> break;
> case TMEMC_SET_CAP:
> client->cap = arg1;
> - printk("tmem: cap set to %d for %s=%d\n",arg1,cli_id_str,cli_id);
> + tmh_client_info("tmem: cap set to %d for %s=%d\n",
> + arg1, cli_id_str, cli_id);
> break;
> case TMEMC_SET_COMPRESS:
> #ifdef __i386__
> @@ -2275,17 +2280,17 @@ static int tmemc_set_var_one(client_t *c
> #endif
> if ( tmh_dedup_enabled() )
> {
> - printk("tmem: compression %s for all %ss, cannot be changed "
> - "when tmem_dedup is enabled\n",
> - tmh_compression_enabled() ? "enabled" : "disabled",client_str);
> + tmh_client_warn("tmem: compression %s for all %ss, cannot be
> changed when tmem_dedup is enabled\n",
> + tmh_compression_enabled() ? "enabled" :
> "disabled",
> + client_str);
> return -1;
> }
> client->compress = arg1 ? 1 : 0;
> - printk("tmem: compression %s for %s=%d\n",
> + tmh_client_info("tmem: compression %s for %s=%d\n",
> arg1 ? "enabled" : "disabled",cli_id_str,cli_id);
> break;
> default:
> - printk("tmem: unknown subop %d for tmemc_set_var\n",subop);
> + tmh_client_warn("tmem: unknown subop %d for tmemc_set_var\n",
> subop);
> return -1;
> }
> return 0;
> @@ -2668,7 +2673,7 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
>
> if ( unlikely(tmh_get_tmemop_from_client(&op, uops) != 0) )
> {
> - printk("tmem: can't get tmem struct from %s\n",client_str);
> + tmh_client_err("tmem: can't get tmem struct from %s\n",
> client_str);
> rc = -EFAULT;
> if ( !tmh_lock_all )
> goto simple_error;
> @@ -2702,7 +2707,8 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
> tmem_write_lock_set = 1;
> if ( (client = client_create(tmh_get_cli_id_from_current())) ==
> NULL )
> {
> - printk("tmem: can't create tmem structure for %s\n",client_str);
> + tmh_client_err("tmem: can't create tmem structure for %s\n",
> + client_str);
> rc = -ENOMEM;
> goto out;
> }
> @@ -2726,8 +2732,8 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
> if ( ((uint32_t)op.pool_id >= MAX_POOLS_PER_DOMAIN) ||
> ((pool = client->pools[op.pool_id]) == NULL) )
> {
> + tmh_client_err("tmem: operation requested on uncreated
> pool\n");
> rc = -ENODEV;
> - printk("tmem: operation requested on uncreated pool\n");
> goto out;
> }
> ASSERT_SENTINEL(pool,POOL);
> @@ -2783,11 +2789,11 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
> break;
> case TMEM_XCHG:
> /* need to hold global lock to ensure xchg is atomic */
> - printk("tmem_xchg op not implemented yet\n");
> + tmh_client_warn("tmem_xchg op not implemented yet\n");
> rc = 0;
> break;
> default:
> - printk("tmem: op %d not implemented\n", op.cmd);
> + tmh_client_warn("tmem: op %d not implemented\n", op.cmd);
> rc = 0;
> break;
> }
> --- a/xen/include/xen/tmem_xen.h
> +++ b/xen/include/xen/tmem_xen.h
> @@ -512,6 +512,9 @@ int tmh_copy_to_client(tmem_cli_mfn_t, p
>
> extern int tmh_copy_tze_to_client(tmem_cli_mfn_t cmfn, void *tmem_va,
> pagesize_t len);
>
> +#define tmh_client_err(fmt, args...) printk(XENLOG_G_ERR fmt, ##args)
> +#define tmh_client_warn(fmt, args...) printk(XENLOG_G_WARNING fmt, ##args)
> +#define tmh_client_info(fmt, args...) printk(XENLOG_G_INFO fmt, ##args)
>
> #define TMEM_PERF
> #ifdef TMEM_PERF
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
2012-09-11 8:36 ` Ping: " Jan Beulich
@ 2012-09-11 9:18 ` DuanZhenzhong
2012-09-11 9:42 ` Jan Beulich
0 siblings, 1 reply; 9+ messages in thread
From: DuanZhenzhong @ 2012-09-11 9:18 UTC (permalink / raw)
To: Jan Beulich; +Cc: dan.magenheimer, Ian Campbell, xen-devel
Dan is offline recently.
What about 'printk("tmem_relinquish_page: failing order=%d\n", order)',
more like a guest level msg.
zduan
Jan Beulich wrote:
> I was hoping to get this series (and the supposedly trivial tools
> side fix for save/restore) into the tree, but this patch is lacking
> an ack...
>
> Jan
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
2012-09-11 9:18 ` DuanZhenzhong
@ 2012-09-11 9:42 ` Jan Beulich
2012-09-11 10:01 ` DuanZhenzhong
0 siblings, 1 reply; 9+ messages in thread
From: Jan Beulich @ 2012-09-11 9:42 UTC (permalink / raw)
To: DuanZhenzhong; +Cc: dan.magenheimer, Ian Campbell, xen-devel
>>> On 11.09.12 at 11:18, DuanZhenzhong <zhenzhong.duan@oracle.com> wrote:
> Dan is offline recently.
> What about 'printk("tmem_relinquish_page: failing order=%d\n", order)',
> more like a guest level msg.
That's debatable, but the message is enabled for debug builds
only anyway. Could be make XENLOG_DEBUG, but that would
require yet another helper in tmem_xen.h. I'd want to leave
this alone for the moment.
Jan
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
2012-09-11 9:42 ` Jan Beulich
@ 2012-09-11 10:01 ` DuanZhenzhong
2012-09-11 10:26 ` Jan Beulich
0 siblings, 1 reply; 9+ messages in thread
From: DuanZhenzhong @ 2012-09-11 10:01 UTC (permalink / raw)
To: Jan Beulich; +Cc: dan.magenheimer, Ian Campbell, xen-devel
Jan Beulich wrote:
>>>> On 11.09.12 at 11:18, DuanZhenzhong <zhenzhong.duan@oracle.com> wrote:
>>>>
>> Dan is offline recently.
>> What about 'printk("tmem_relinquish_page: failing order=%d\n", order)',
>> more like a guest level msg.
>>
>
> That's debatable, but the message is enabled for debug builds
> only anyway. Could be make XENLOG_DEBUG, but that would
> require yet another helper in tmem_xen.h. I'd want to leave
> this alone for the moment.
Ok.
zduan
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
2012-09-11 10:01 ` DuanZhenzhong
@ 2012-09-11 10:26 ` Jan Beulich
2012-09-11 11:56 ` zhenzhong.duan
0 siblings, 1 reply; 9+ messages in thread
From: Jan Beulich @ 2012-09-11 10:26 UTC (permalink / raw)
To: DuanZhenzhong; +Cc: dan.magenheimer, Ian Campbell, xen-devel
>>> On 11.09.12 at 12:01, DuanZhenzhong <zhenzhong.duan@oracle.com> wrote:
> Jan Beulich wrote:
>>>>> On 11.09.12 at 11:18, DuanZhenzhong <zhenzhong.duan@oracle.com> wrote:
>>>>>
>>> Dan is offline recently.
>>> What about 'printk("tmem_relinquish_page: failing order=%d\n", order)',
>>> more like a guest level msg.
>>>
>>
>> That's debatable, but the message is enabled for debug builds
>> only anyway. Could be make XENLOG_DEBUG, but that would
>> require yet another helper in tmem_xen.h. I'd want to leave
>> this alone for the moment.
> Ok.
> zduan
Is that an ack on the patch then?
Jan
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
2012-09-11 10:26 ` Jan Beulich
@ 2012-09-11 11:56 ` zhenzhong.duan
2012-09-17 22:21 ` Dan Magenheimer
0 siblings, 1 reply; 9+ messages in thread
From: zhenzhong.duan @ 2012-09-11 11:56 UTC (permalink / raw)
To: Jan Beulich; +Cc: dan.magenheimer, Ian Campbell, xen-devel
于 2012-09-11 18:26, Jan Beulich 写道:
>>>> On 11.09.12 at 12:01, DuanZhenzhong<zhenzhong.duan@oracle.com> wrote:
>> Jan Beulich wrote:
>>>>>> On 11.09.12 at 11:18, DuanZhenzhong<zhenzhong.duan@oracle.com> wrote:
>>>>>>
>>>> Dan is offline recently.
>>>> What about 'printk("tmem_relinquish_page: failing order=%d\n", order)',
>>>> more like a guest level msg.
>>>>
>>> That's debatable, but the message is enabled for debug builds
>>> only anyway. Could be make XENLOG_DEBUG, but that would
>>> require yet another helper in tmem_xen.h. I'd want to leave
>>> this alone for the moment.
>> Ok.
>> zduan
> Is that an ack on the patch then?
Hope Dan don't have other suggestion.
Acked-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
zduan
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
2012-09-11 11:56 ` zhenzhong.duan
@ 2012-09-17 22:21 ` Dan Magenheimer
0 siblings, 0 replies; 9+ messages in thread
From: Dan Magenheimer @ 2012-09-17 22:21 UTC (permalink / raw)
To: Zhenzhong Duan, Jan Beulich; +Cc: Ian Campbell, xen-devel
> From: zhenzhong.duan
> Sent: Tuesday, September 11, 2012 5:57 AM
> To: Jan Beulich
> Cc: Ian Campbell; xen-devel; Dan Magenheimer
> Subject: Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
>
>
>
> 于 2012-09-11 18:26, Jan Beulich 写道:
> >>>> On 11.09.12 at 12:01, DuanZhenzhong<zhenzhong.duan@oracle.com> wrote:
> >> Jan Beulich wrote:
> >>>>>> On 11.09.12 at 11:18, DuanZhenzhong<zhenzhong.duan@oracle.com> wrote:
> >>>>>>
> >>>> Dan is offline recently.
> >>>> What about 'printk("tmem_relinquish_page: failing order=%d\n", order)',
> >>>> more like a guest level msg.
> >>>>
> >>> That's debatable, but the message is enabled for debug builds
> >>> only anyway. Could be make XENLOG_DEBUG, but that would
> >>> require yet another helper in tmem_xen.h. I'd want to leave
> >>> this alone for the moment.
> >> Ok.
> >> zduan
> > Is that an ack on the patch then?
> Hope Dan don't have other suggestion.
>
> Acked-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
Looks good to me too.
Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-09-17 22:21 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-05 12:39 [PATCH 09/11] tmem: reduce severity of log messages Jan Beulich
2012-09-07 12:15 ` [PATCH 09/11, v2] " Jan Beulich
2012-09-11 8:36 ` Ping: " Jan Beulich
2012-09-11 9:18 ` DuanZhenzhong
2012-09-11 9:42 ` Jan Beulich
2012-09-11 10:01 ` DuanZhenzhong
2012-09-11 10:26 ` Jan Beulich
2012-09-11 11:56 ` zhenzhong.duan
2012-09-17 22:21 ` Dan Magenheimer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).