vmscan.c (6e9015716ae9b59e9635d692fddfcfb9582c146c) vmscan.c (c9f299d9862deadf9fbee3ca28d915fdb006975a)
1/*
2 * linux/mm/vmscan.c
3 *
4 * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds
5 *
6 * Swap reorganised 29.12.95, Stephen Tweedie.
7 * kswapd added: 7.1.96 sct
8 * Removed kswapd_ctl limits, and swap out as many pages as needed

--- 122 unchanged lines hidden (view full) ---

131#endif
132
133static struct zone_reclaim_stat *get_reclaim_stat(struct zone *zone,
134 struct scan_control *sc)
135{
136 return &zone->reclaim_stat;
137}
138
1/*
2 * linux/mm/vmscan.c
3 *
4 * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds
5 *
6 * Swap reorganised 29.12.95, Stephen Tweedie.
7 * kswapd added: 7.1.96 sct
8 * Removed kswapd_ctl limits, and swap out as many pages as needed

--- 122 unchanged lines hidden (view full) ---

131#endif
132
133static struct zone_reclaim_stat *get_reclaim_stat(struct zone *zone,
134 struct scan_control *sc)
135{
136 return &zone->reclaim_stat;
137}
138
139static unsigned long zone_nr_pages(struct zone *zone, struct scan_control *sc,
140 enum lru_list lru)
141{
142 return zone_page_state(zone, NR_LRU_BASE + lru);
143}
144
145
139/*
140 * Add a shrinker callback to be called from the vm
141 */
142void register_shrinker(struct shrinker *shrinker)
143{
144 shrinker->nr = 0;
145 down_write(&shrinker_rwsem);
146 list_add_tail(&shrinker->list, &shrinker_list);

--- 1213 unchanged lines hidden (view full) ---

1360
1361 /* If we have no swap space, do not bother scanning anon pages. */
1362 if (nr_swap_pages <= 0) {
1363 percent[0] = 0;
1364 percent[1] = 100;
1365 return;
1366 }
1367
146/*
147 * Add a shrinker callback to be called from the vm
148 */
149void register_shrinker(struct shrinker *shrinker)
150{
151 shrinker->nr = 0;
152 down_write(&shrinker_rwsem);
153 list_add_tail(&shrinker->list, &shrinker_list);

--- 1213 unchanged lines hidden (view full) ---

1367
1368 /* If we have no swap space, do not bother scanning anon pages. */
1369 if (nr_swap_pages <= 0) {
1370 percent[0] = 0;
1371 percent[1] = 100;
1372 return;
1373 }
1374
1368 anon = zone_page_state(zone, NR_ACTIVE_ANON) +
1369 zone_page_state(zone, NR_INACTIVE_ANON);
1370 file = zone_page_state(zone, NR_ACTIVE_FILE) +
1371 zone_page_state(zone, NR_INACTIVE_FILE);
1375 anon = zone_nr_pages(zone, sc, LRU_ACTIVE_ANON) +
1376 zone_nr_pages(zone, sc, LRU_INACTIVE_ANON);
1377 file = zone_nr_pages(zone, sc, LRU_ACTIVE_FILE) +
1378 zone_nr_pages(zone, sc, LRU_INACTIVE_FILE);
1372 free = zone_page_state(zone, NR_FREE_PAGES);
1373
1374 /* If we have very few page cache pages, force-scan anon pages. */
1375 if (unlikely(file + free <= zone->pages_high)) {
1376 percent[0] = 100;
1377 percent[1] = 0;
1378 return;
1379 }

--- 1262 unchanged lines hidden ---
1379 free = zone_page_state(zone, NR_FREE_PAGES);
1380
1381 /* If we have very few page cache pages, force-scan anon pages. */
1382 if (unlikely(file + free <= zone->pages_high)) {
1383 percent[0] = 100;
1384 percent[1] = 0;
1385 return;
1386 }

--- 1262 unchanged lines hidden ---