@@ -1166,18 +1166,20 @@ static inline void sync_mm_rss(struct task_struct *task, struct mm_struct *mm)
1166
1166
* We consolidate the values for easier extention later.
1167
1167
*/
1168
1168
struct shrink_control {
1169
- unsigned long nr_scanned ;
1170
1169
gfp_t gfp_mask ;
1170
+
1171
+ /* How many slab objects shrinker() should scan and try to reclaim */
1172
+ unsigned long nr_to_scan ;
1171
1173
};
1172
1174
1173
1175
/*
1174
1176
* A callback you can register to apply pressure to ageable caches.
1175
1177
*
1176
- * 'shrink ' is passed a count 'nr_to_scan' and a 'gfpmask'. It should
1177
- * look through the least-recently-used 'nr_to_scan' entries and
1178
- * attempt to free them up. It should return the number of objects
1179
- * which remain in the cache. If it returns -1, it means it cannot do
1180
- * any scanning at this time (eg. there is a risk of deadlock).
1178
+ * 'sc ' is passed shrink_control which includes a count 'nr_to_scan'
1179
+ * and a 'gfpmask'. It should look through the least-recently-used
1180
+ * 'nr_to_scan' entries and attempt to free them up. It should return
1181
+ * the number of objects which remain in the cache. If it returns -1, it means
1182
+ * it cannot do any scanning at this time (eg. there is a risk of deadlock).
1181
1183
*
1182
1184
* The 'gfpmask' refers to the allocation we are currently trying to
1183
1185
* fulfil.
@@ -1186,7 +1188,7 @@ struct shrink_control {
1186
1188
* querying the cache size, so a fastpath for that case is appropriate.
1187
1189
*/
1188
1190
struct shrinker {
1189
- int (* shrink )(struct shrinker * , int nr_to_scan , gfp_t gfp_mask );
1191
+ int (* shrink )(struct shrinker * , struct shrink_control * sc );
1190
1192
int seeks ; /* seeks to recreate an obj */
1191
1193
1192
1194
/* These are for internal use */
@@ -1640,7 +1642,8 @@ int in_gate_area_no_mm(unsigned long addr);
1640
1642
int drop_caches_sysctl_handler (struct ctl_table * , int ,
1641
1643
void __user * , size_t * , loff_t * );
1642
1644
unsigned long shrink_slab (struct shrink_control * shrink ,
1643
- unsigned long lru_pages );
1645
+ unsigned long nr_pages_scanned ,
1646
+ unsigned long lru_pages );
1644
1647
1645
1648
#ifndef CONFIG_MMU
1646
1649
#define randomize_va_space 0
0 commit comments