|
|
@@ -169,14 +169,12 @@ enum zs_stat_type {
|
|
|
NR_ZS_STAT_TYPE,
|
|
|
};
|
|
|
|
|
|
-#ifdef CONFIG_ZSMALLOC_STAT
|
|
|
-
|
|
|
-static struct dentry *zs_stat_root;
|
|
|
-
|
|
|
struct zs_size_stat {
|
|
|
unsigned long objs[NR_ZS_STAT_TYPE];
|
|
|
};
|
|
|
|
|
|
+#ifdef CONFIG_ZSMALLOC_STAT
|
|
|
+static struct dentry *zs_stat_root;
|
|
|
#endif
|
|
|
|
|
|
/*
|
|
|
@@ -201,6 +199,8 @@ static int zs_size_classes;
|
|
|
static const int fullness_threshold_frac = 4;
|
|
|
|
|
|
struct size_class {
|
|
|
+ spinlock_t lock;
|
|
|
+ struct page *fullness_list[_ZS_NR_FULLNESS_GROUPS];
|
|
|
/*
|
|
|
* Size of objects stored in this class. Must be multiple
|
|
|
* of ZS_ALIGN.
|
|
|
@@ -210,16 +210,10 @@ struct size_class {
|
|
|
|
|
|
/* Number of PAGE_SIZE sized pages to combine to form a 'zspage' */
|
|
|
int pages_per_zspage;
|
|
|
- /* huge object: pages_per_zspage == 1 && maxobj_per_zspage == 1 */
|
|
|
- bool huge;
|
|
|
-
|
|
|
-#ifdef CONFIG_ZSMALLOC_STAT
|
|
|
struct zs_size_stat stats;
|
|
|
-#endif
|
|
|
-
|
|
|
- spinlock_t lock;
|
|
|
|
|
|
- struct page *fullness_list[_ZS_NR_FULLNESS_GROUPS];
|
|
|
+ /* huge object: pages_per_zspage == 1 && maxobj_per_zspage == 1 */
|
|
|
+ bool huge;
|
|
|
};
|
|
|
|
|
|
/*
|
|
|
@@ -441,8 +435,6 @@ static int get_size_class_index(int size)
|
|
|
return min(zs_size_classes - 1, idx);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_ZSMALLOC_STAT
|
|
|
-
|
|
|
static inline void zs_stat_inc(struct size_class *class,
|
|
|
enum zs_stat_type type, unsigned long cnt)
|
|
|
{
|
|
|
@@ -461,6 +453,8 @@ static inline unsigned long zs_stat_get(struct size_class *class,
|
|
|
return class->stats.objs[type];
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_ZSMALLOC_STAT
|
|
|
+
|
|
|
static int __init zs_stat_init(void)
|
|
|
{
|
|
|
if (!debugfs_initialized())
|
|
|
@@ -576,23 +570,6 @@ static void zs_pool_stat_destroy(struct zs_pool *pool)
|
|
|
}
|
|
|
|
|
|
#else /* CONFIG_ZSMALLOC_STAT */
|
|
|
-
|
|
|
-static inline void zs_stat_inc(struct size_class *class,
|
|
|
- enum zs_stat_type type, unsigned long cnt)
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
-static inline void zs_stat_dec(struct size_class *class,
|
|
|
- enum zs_stat_type type, unsigned long cnt)
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
-static inline unsigned long zs_stat_get(struct size_class *class,
|
|
|
- enum zs_stat_type type)
|
|
|
-{
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static int __init zs_stat_init(void)
|
|
|
{
|
|
|
return 0;
|
|
|
@@ -610,7 +587,6 @@ static inline int zs_pool_stat_create(char *name, struct zs_pool *pool)
|
|
|
static inline void zs_pool_stat_destroy(struct zs_pool *pool)
|
|
|
{
|
|
|
}
|
|
|
-
|
|
|
#endif
|
|
|
|
|
|
|