[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] 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@xxxxxxxx> 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@xxxxxxxx>
> ---
> 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@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.