All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Bob Liu <lliubbo@gmail.com>
Cc: xen-devel@lists.xenproject.org, keir@xen.org,
	ian.campbell@citrix.com, JBeulich@suse.com
Subject: Re: [PATCH 09/16] tmem: cleanup: drop tmemc_list() temporary
Date: Fri, 22 Nov 2013 16:00:13 -0500	[thread overview]
Message-ID: <20131122210013.GA4787@phenom.dumpdata.com> (raw)
In-Reply-To: <1384937185-24749-9-git-send-email-bob.liu@oracle.com>

On Wed, Nov 20, 2013 at 04:46:18PM +0800, Bob Liu wrote:
> tmemc_list() collects a lot of statistics which are not well defined,
> unreadable and most of them are useless.
> 
> This patch drop those mess code and leave TMEMC_LIST subops unimplemented
> temporary.

And you might want to drop tmem_copy_to_client_buf_offset as well as it is
the only user of it.

> 
> Signed-off-by: Bob Liu <bob.liu@oracle.com>
> ---
>  xen/common/tmem.c |  171 +----------------------------------------------------
>  1 file changed, 2 insertions(+), 169 deletions(-)
> 
> diff --git a/xen/common/tmem.c b/xen/common/tmem.c
> index 6afbdbc..48b67bf 100644
> --- a/xen/common/tmem.c
> +++ b/xen/common/tmem.c
> @@ -29,12 +29,10 @@
>  /* global statistics (none need to be locked) */
>  static unsigned long total_tmem_ops = 0;
>  static unsigned long errored_tmem_ops = 0;
> -static unsigned long total_flush_pool = 0;
>  static unsigned long alloc_failed = 0, alloc_page_failed = 0;
>  static unsigned long evicted_pgs = 0, evict_attempts = 0;
>  static unsigned long relinq_pgs = 0, relinq_attempts = 0;
>  static unsigned long max_evicts_per_relinq = 0;
> -static unsigned long low_on_memory = 0;
>  static unsigned long deduped_puts = 0;
>  static unsigned long tot_good_eph_puts = 0;
>  static int global_obj_count_max = 0;
> @@ -1980,176 +1978,11 @@ static int tmemc_flush_mem(domid_t cli_id, uint32_t kb)
>      return flushed_kb;
>  }
>  
> -/*
> - * These tmemc_list* routines output lots of stats in a format that is
> - *  intended to be program-parseable, not human-readable. Further, by
> - *  tying each group of stats to a line format indicator (e.g. G= for
> - *  global stats) and each individual stat to a two-letter specifier
> - *  (e.g. Ec:nnnnn in the G= line says there are nnnnn pages in the
> - *  global ephemeral pool), it should allow the stats reported to be
> - *  forward and backwards compatible as tmem evolves.
> - */
> -#define BSIZE 1024
> -
> -static int tmemc_list_client(struct client *c, tmem_cli_va_param_t buf,
> -                             int off, uint32_t len, bool_t use_long)
> -{
> -    char info[BSIZE];
> -    int i, n = 0, sum = 0;
> -    struct tmem_pool *p;
> -    bool_t s;
> -
> -    n = scnprintf(info,BSIZE,"C=CI:%d,ww:%d,ca:%d,co:%d,fr:%d,"
> -        "Tc:%"PRIu64",Ge:%ld,Pp:%ld,Gp:%ld%c",
> -        c->cli_id, c->weight, c->cap, c->compress, c->frozen,
> -        c->total_cycles, c->succ_eph_gets, c->succ_pers_puts, c->succ_pers_gets,
> -        use_long ? ',' : '\n');
> -    if (use_long)
> -        n += scnprintf(info+n,BSIZE-n,
> -             "Ec:%ld,Em:%ld,cp:%ld,cb:%"PRId64",cn:%ld,cm:%ld\n",
> -             c->eph_count, c->eph_count_max,
> -             c->compressed_pages, c->compressed_sum_size,
> -             c->compress_poor, c->compress_nomem);
> -    tmem_copy_to_client_buf_offset(buf,off+sum,info,n+1);
> -    sum += n;
> -    for ( i = 0; i < MAX_POOLS_PER_DOMAIN; i++ )
> -    {
> -        if ( (p = c->pools[i]) == NULL )
> -            continue;
> -        s = is_shared(p);
> -        n = scnprintf(info,BSIZE,"P=CI:%d,PI:%d,"
> -                      "PT:%c%c,U0:%"PRIx64",U1:%"PRIx64"%c",
> -                      c->cli_id, p->pool_id,
> -                      is_persistent(p) ? 'P' : 'E', s ? 'S' : 'P',
> -                      (uint64_t)(s ? p->uuid[0] : 0),
> -                      (uint64_t)(s ? p->uuid[1] : 0LL),
> -                      use_long ? ',' : '\n');
> -        if (use_long)
> -            n += scnprintf(info+n,BSIZE-n,
> -             "Pc:%d,Pm:%d,Oc:%ld,Om:%ld,Nc:%lu,Nm:%lu,"
> -             "ps:%lu,pt:%lu,pd:%lu,pr:%lu,px:%lu,gs:%lu,gt:%lu,"
> -             "fs:%lu,ft:%lu,os:%lu,ot:%lu\n",
> -             _atomic_read(p->pgp_count), p->pgp_count_max,
> -             p->obj_count, p->obj_count_max,
> -             p->objnode_count, p->objnode_count_max,
> -             p->good_puts, p->puts,p->dup_puts_flushed, p->dup_puts_replaced,
> -             p->no_mem_puts, 
> -             p->found_gets, p->gets,
> -             p->flushs_found, p->flushs, p->flush_objs_found, p->flush_objs);
> -        if ( sum + n >= len )
> -            return sum;
> -        tmem_copy_to_client_buf_offset(buf,off+sum,info,n+1);
> -        sum += n;
> -    }
> -    return sum;
> -}
> -
> -static int tmemc_list_shared(tmem_cli_va_param_t buf, int off, uint32_t len,
> -                              bool_t use_long)
> -{
> -    char info[BSIZE];
> -    int i, n = 0, sum = 0;
> -    struct tmem_pool *p;
> -    struct share_list *sl;
> -
> -    for ( i = 0; i < MAX_GLOBAL_SHARED_POOLS; i++ )
> -    {
> -        if ( (p = global_shared_pools[i]) == NULL )
> -            continue;
> -        n = scnprintf(info+n,BSIZE-n,"S=SI:%d,PT:%c%c,U0:%"PRIx64",U1:%"PRIx64,
> -                      i, is_persistent(p) ? 'P' : 'E',
> -                      is_shared(p) ? 'S' : 'P',
> -                      p->uuid[0], p->uuid[1]);
> -        list_for_each_entry(sl,&p->share_list, share_list)
> -            n += scnprintf(info+n,BSIZE-n,",SC:%d",sl->client->cli_id);
> -        n += scnprintf(info+n,BSIZE-n,"%c", use_long ? ',' : '\n');
> -        if (use_long)
> -            n += scnprintf(info+n,BSIZE-n,
> -             "Pc:%d,Pm:%d,Oc:%ld,Om:%ld,Nc:%lu,Nm:%lu,"
> -             "ps:%lu,pt:%lu,pd:%lu,pr:%lu,px:%lu,gs:%lu,gt:%lu,"
> -             "fs:%lu,ft:%lu,os:%lu,ot:%lu\n",
> -             _atomic_read(p->pgp_count), p->pgp_count_max,
> -             p->obj_count, p->obj_count_max,
> -             p->objnode_count, p->objnode_count_max,
> -             p->good_puts, p->puts,p->dup_puts_flushed, p->dup_puts_replaced,
> -             p->no_mem_puts, 
> -             p->found_gets, p->gets,
> -             p->flushs_found, p->flushs, p->flush_objs_found, p->flush_objs);
> -        if ( sum + n >= len )
> -            return sum;
> -        tmem_copy_to_client_buf_offset(buf,off+sum,info,n+1);
> -        sum += n;
> -    }
> -    return sum;
> -}
> -
> -static int tmemc_list_global_perf(tmem_cli_va_param_t buf, int off,
> -                                  uint32_t len, bool_t use_long)
> -{
> -    char info[BSIZE];
> -    int n = 0, sum = 0;
> -
> -    n = scnprintf(info+n,BSIZE-n,"T=");
> -    n--; /* overwrite trailing comma */
> -    n += scnprintf(info+n,BSIZE-n,"\n");
> -    if ( sum + n >= len )
> -        return sum;
> -    tmem_copy_to_client_buf_offset(buf,off+sum,info,n+1);
> -    sum += n;
> -    return sum;
> -}
> -
> -static int tmemc_list_global(tmem_cli_va_param_t buf, int off, uint32_t len,
> -                              bool_t use_long)
> -{
> -    char info[BSIZE];
> -    int n = 0, sum = off;
> -
> -    n += scnprintf(info,BSIZE,"G="
> -      "Tt:%lu,Te:%lu,Cf:%lu,Af:%lu,Pf:%lu,Ta:%lu,"
> -      "Lm:%lu,Et:%lu,Ea:%lu,Rt:%lu,Ra:%lu,Rx:%lu,Fp:%lu%c",
> -      total_tmem_ops, errored_tmem_ops, failed_copies,
> -      alloc_failed, alloc_page_failed, tmem_page_list_pages,
> -      low_on_memory, evicted_pgs,
> -      evict_attempts, relinq_pgs, relinq_attempts, max_evicts_per_relinq,
> -      total_flush_pool, use_long ? ',' : '\n');
> -    if (use_long)
> -        n += scnprintf(info+n,BSIZE-n,
> -          "Ec:%ld,Em:%ld,Oc:%d,Om:%d,Nc:%d,Nm:%d,Pc:%d,Pm:%d,"
> -          "Fc:%d,Fm:%d,Sc:%d,Sm:%d,Ep:%lu,Gd:%lu,Zt:%lu,Gz:%lu\n",
> -          global_eph_count, global_eph_count_max,
> -          _atomic_read(global_obj_count), global_obj_count_max,
> -          _atomic_read(global_rtree_node_count), global_rtree_node_count_max,
> -          _atomic_read(global_pgp_count), global_pgp_count_max,
> -          _atomic_read(global_page_count), global_page_count_max,
> -          _atomic_read(global_pcd_count), global_pcd_count_max,
> -         tot_good_eph_puts,deduped_puts,pcd_tot_tze_size,pcd_tot_csize);
> -    if ( sum + n >= len )
> -        return sum;
> -    tmem_copy_to_client_buf_offset(buf,off+sum,info,n+1);
> -    sum += n;
> -    return sum;
> -}
> -
>  static int tmemc_list(domid_t cli_id, tmem_cli_va_param_t buf, uint32_t len,
>                                 bool_t use_long)
>  {
> -    struct client *client;
> -    int off = 0;
> -
> -    if ( cli_id == TMEM_CLI_ID_NULL ) {
> -        off = tmemc_list_global(buf,0,len,use_long);
> -        off += tmemc_list_shared(buf,off,len-off,use_long);
> -        list_for_each_entry(client,&global_client_list,client_list)
> -            off += tmemc_list_client(client, buf, off, len-off, use_long);
> -        off += tmemc_list_global_perf(buf,off,len-off,use_long);
> -    }
> -    else if ( (client = tmem_client_from_cli_id(cli_id)) == NULL)
> -        return -1;
> -    else
> -        off = tmemc_list_client(client, buf, 0, len, use_long);
> -
> -    return 0;
> +    tmem_client_info("tmemc_list is not implemented yet!\n");
> +    return -1;
>  }
>  
>  static int tmemc_set_var_one(struct client *client, uint32_t subop, uint32_t arg1)
> -- 
> 1.7.10.4
> 

  parent reply	other threads:[~2013-11-22 21:00 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-20  8:46 [PATCH 01/16] tmem: cleanup: drop some debug code Bob Liu
2013-11-20  8:46 ` [PATCH 02/16] tmem: cleanup: drop useless function 'tmem_copy_page' Bob Liu
2013-11-20  8:46 ` [PATCH 03/16] tmem: cleanup: rm unused tmem_op Bob Liu
2013-11-22 17:38   ` Konrad Rzeszutek Wilk
2013-11-25  9:43     ` Jan Beulich
2013-11-25  9:52       ` Ian Campbell
2013-11-25  9:58         ` Jan Beulich
2013-11-25 16:37         ` Konrad Rzeszutek Wilk
2013-11-25 16:40           ` Ian Campbell
2013-11-25 17:09             ` Konrad Rzeszutek Wilk
2013-11-25 17:12               ` Ian Campbell
2013-11-25 19:56                 ` Konrad Rzeszutek Wilk
2013-11-26  8:56                   ` Bob Liu
2013-11-20  8:46 ` [PATCH 04/16] tmem: cleanup: rm unneeded parameters from put path Bob Liu
2013-11-22 17:54   ` Konrad Rzeszutek Wilk
2013-11-26  8:22     ` Bob Liu
2013-11-20  8:46 ` [PATCH 05/16] tmem: cleanup: rm unneeded parameters from get path Bob Liu
2013-11-22 17:55   ` Konrad Rzeszutek Wilk
2013-11-20  8:46 ` [PATCH 06/16] tmem: cleanup: reorg do_tmem_put() Bob Liu
2013-11-22 18:04   ` Konrad Rzeszutek Wilk
2013-11-20  8:46 ` [PATCH 07/16] tmem: drop unneeded is_ephemeral() and is_private() Bob Liu
2013-11-20  8:46 ` [PATCH 08/16] tmem: cleanup: rm useless EXPORT/FORWARD define Bob Liu
2013-11-22 18:05   ` Konrad Rzeszutek Wilk
2013-11-20  8:46 ` [PATCH 09/16] tmem: cleanup: drop tmemc_list() temporary Bob Liu
2013-11-22 18:07   ` Konrad Rzeszutek Wilk
2013-11-26  8:28     ` Bob Liu
2013-11-22 21:00   ` Konrad Rzeszutek Wilk [this message]
2013-11-20  8:46 ` [PATCH 10/16] tmem: cleanup: drop runtime statistics Bob Liu
2013-11-22 18:08   ` Konrad Rzeszutek Wilk
2013-11-20  8:46 ` [PATCH 11/16] tmem: cleanup: drop tmem_lock_all Bob Liu
2013-11-20  8:46 ` [PATCH 12/16] tmem: cleanup: refactor the alloc/free path Bob Liu
2013-11-20  8:46 ` [PATCH 13/16] tmem: cleanup: __tmem_alloc_page: drop unneed parameters Bob Liu
2013-11-22 18:17   ` Konrad Rzeszutek Wilk
2013-11-26  8:41     ` Bob Liu
2013-11-26 17:38       ` Konrad Rzeszutek Wilk
2013-11-20  8:46 ` [PATCH 14/16] tmem: cleanup: drop useless functions from head file Bob Liu
2013-11-27 14:38   ` Andrew Cooper
2013-11-27 14:52     ` Konrad Rzeszutek Wilk
2013-11-27 14:59       ` Andrew Cooper
2013-11-27 15:55         ` Jan Beulich
2013-11-20  8:46 ` [PATCH 15/16] tmem: refator function tmem_ensure_avail_pages() Bob Liu
2013-11-22 18:22   ` Konrad Rzeszutek Wilk
2013-11-20  8:46 ` [PATCH 16/16] tmem: cleanup: rename tmem_relinquish_npages() Bob Liu
2013-11-20  9:08 ` [PATCH 01/16] tmem: cleanup: drop some debug code Jan Beulich
2013-11-20  9:19   ` Bob Liu
2013-11-20  9:25     ` Jan Beulich
2013-11-20 13:51       ` Konrad Rzeszutek Wilk
2013-11-20 14:21         ` Jan Beulich
2013-11-20 18:46           ` Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131122210013.GA4787@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=JBeulich@suse.com \
    --cc=ian.campbell@citrix.com \
    --cc=keir@xen.org \
    --cc=lliubbo@gmail.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.