On Tue, 5 Feb 2008 10:08:00 -0800 (PST)
Christoph Lameter <[EMAIL PROTECTED]> wrote:

> On Tue, 5 Feb 2008, Pekka J Enberg wrote:
> 
> > Heh, sure, but it's not exported to userspace which is required for 
> > slabinfo to display the statistics.
> 
> Well we could do the same as for numa stats. Output the global count and 
> then add
> 
> c<proc>=count
> 

Yes, or the reverse, to avoid two loops and possible sum errors (Sum of 
c<proc>=count different than the global count)

Since text##_show is going to be too big, you could use one function instead of 
several ones ?

(and char *buf is PAGE_SIZE, so you should add a limit ?)

Note I used for_each_possible_cpu() here instead of 'online' variant, or stats 
might be corrupted when a cpu goes offline.

static ssize_t text_show(struct kmem_cache *s, char *buf, unsigned int si)
{                                                               
        unsigned long val, sum = 0;                                     
        int cpu;
        size_t off = 0;                                         
        size_t buflen = PAGE_SIZE;
                                                                
        for_each_possible_cpu(cpu) {                            
                val = get_cpu_slab(s, cpu)->stat[si];
#ifdef CONFIG_SMP
                if (val)
                        off += snprintf(buf + off, buflen - off, "c%d=%lu ", 
cpu, val);
#endif
                sum += val;             
        }
        off += snprintf(buf + off, buflen - off, "%lu\n", sum);                 
        return off;
}                                                               


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to