On Tue, Mar 13, 2012 at 11:34:47AM +0100, Florian Schmaus wrote: > Signed-off-by: Florian Schmaus <fschmaus@xxxxxxxxx> Looks good. > --- > drivers/staging/zcache/zcache-main.c | 54 ++++++++++++++++++++++------------ > 1 files changed, 35 insertions(+), 19 deletions(-) > > diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c > index 1bece03..d2f9d9e 100644 > --- a/drivers/staging/zcache/zcache-main.c > +++ b/drivers/staging/zcache/zcache-main.c > @@ -95,25 +95,7 @@ enum comp_op { > > static inline int zcache_comp_op(enum comp_op op, > const u8 *src, unsigned int slen, > - u8 *dst, unsigned int *dlen) > -{ > - struct crypto_comp *tfm; > - int ret; > - > - BUG_ON(!zcache_comp_pcpu_tfms); > - tfm = *per_cpu_ptr(zcache_comp_pcpu_tfms, get_cpu()); > - BUG_ON(!tfm); > - switch (op) { > - case ZCACHE_COMPOP_COMPRESS: > - ret = crypto_comp_compress(tfm, src, slen, dst, dlen); > - break; > - case ZCACHE_COMPOP_DECOMPRESS: > - ret = crypto_comp_decompress(tfm, src, slen, dst, dlen); > - break; > - } > - put_cpu(); > - return ret; > -} > + u8 *dst, unsigned int *dlen); > > /********** > * Compression buddies ("zbud") provides for packing two (or, possibly > @@ -1057,6 +1039,8 @@ static atomic_t zcache_curr_obj_count = ATOMIC_INIT(0); > static unsigned long zcache_curr_obj_count_max; > static atomic_t zcache_curr_objnode_count = ATOMIC_INIT(0); > static unsigned long zcache_curr_objnode_count_max; > +static atomic_t zcache_compress_count = ATOMIC_INIT(0); > +static atomic_t zcache_decompress_count = ATOMIC_INIT(0); > > /* > * to avoid memory allocation recursion (e.g. due to direct reclaim), we > @@ -1521,6 +1505,8 @@ ZCACHE_SYSFS_RO_ATOMIC(zbud_curr_raw_pages); > ZCACHE_SYSFS_RO_ATOMIC(zbud_curr_zpages); > ZCACHE_SYSFS_RO_ATOMIC(curr_obj_count); > ZCACHE_SYSFS_RO_ATOMIC(curr_objnode_count); > +ZCACHE_SYSFS_RO_ATOMIC(compress_count); > +ZCACHE_SYSFS_RO_ATOMIC(decompress_count); > ZCACHE_SYSFS_RO_CUSTOM(zbud_unbuddied_list_counts, > zbud_show_unbuddied_list_counts); > ZCACHE_SYSFS_RO_CUSTOM(zbud_cumul_chunk_counts, > @@ -1564,6 +1550,8 @@ static struct attribute *zcache_attrs[] = { > &zcache_zv_max_mean_zsize_attr.attr, > &zcache_zv_page_count_policy_percent_attr.attr, > &zcache_freeze_attr.attr, > + &zcache_compress_count_attr.attr, > + &zcache_decompress_count_attr.attr, > NULL, > }; > > @@ -1574,6 +1562,34 @@ static struct attribute_group zcache_attr_group = { > > #endif /* CONFIG_SYSFS */ > > +static inline int zcache_comp_op(enum comp_op op, > + const u8 *src, unsigned int slen, > + u8 *dst, unsigned int *dlen) > +{ > + struct crypto_comp *tfm; > + int ret; > + > + BUG_ON(!zcache_comp_pcpu_tfms); > + tfm = *per_cpu_ptr(zcache_comp_pcpu_tfms, get_cpu()); > + BUG_ON(!tfm); > + switch (op) { > + case ZCACHE_COMPOP_COMPRESS: > + ret = crypto_comp_compress(tfm, src, slen, dst, dlen); > +#ifdef CONFIG_SYSFS > + atomic_inc(&zcache_compress_count); > +#endif > + break; > + case ZCACHE_COMPOP_DECOMPRESS: > + ret = crypto_comp_decompress(tfm, src, slen, dst, dlen); > +#ifdef CONFIG_SYSFS > + atomic_inc(&zcache_decompress_count); > +#endif > + break; > + } > + put_cpu(); > + return ret; > +} > + > /* > * zcache shrinker interface (only useful for ephemeral pages, so zbud only) > */ > -- > 1.7.5.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel