[PATCH 2/3] Added counters for compression and decompression
Konrad Rzeszutek Wilk
konrad.wilk at oracle.com
Thu Mar 15 16:38:43 UTC 2012
On Tue, Mar 13, 2012 at 11:34:47AM +0100, Florian Schmaus wrote:
> Signed-off-by: Florian Schmaus <fschmaus at gmail.com>
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
More information about the devel
mailing list