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> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Jan Beulich
2012-Sep-11 08:36 UTC
Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
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
DuanZhenzhong
2012-Sep-11 09:18 UTC
Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
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
Jan Beulich
2012-Sep-11 09:42 UTC
Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
>>> 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
DuanZhenzhong
2012-Sep-11 10:01 UTC
Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
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
Jan Beulich
2012-Sep-11 10:26 UTC
Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
>>> 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. > zduanIs that an ack on the patch then? Jan
zhenzhong.duan
2012-Sep-11 11:56 UTC
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> zduan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Dan Magenheimer
2012-Sep-17 22:21 UTC
Re: Ping: [PATCH 09/11, v2] tmem: reduce severity of log messages
> 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