On Wed, Mar 27, 2013 at 10:53:30AM +0900, Kamezawa Hiroyuki wrote: [...]
+++ b/mm/memcontrol.c @@ -49,6 +49,7 @@ #include <linux/fs.h> #include <linux/seq_file.h> #include <linux/vmalloc.h> +#include <linux/vmpressure.h> #include <linux/mm_inline.h> #include <linux/page_cgroup.h> #include <linux/cpu.h> @@ -376,6 +377,9 @@ struct mem_cgroup { atomic_t numainfo_events; atomic_t numainfo_updating; #endif
- struct vmpressure vmpr;
How about placing this just below "memsw_threshold" ? memory objects around there is not performance critical.
Yup, done.
[...]
+static const unsigned int vmpressure_win = SWAP_CLUSTER_MAX * 16; +static const unsigned int vmpressure_level_med = 60; +static const unsigned int vmpressure_level_critical = 95; +static const unsigned int vmpressure_level_critical_prio = 3;
more comments are welcomed...
I'm not against the numbers themselves but I'm not sure how these numbers are selected...I'm glad if you show some reasons in changelog or somewhere.
Sure, in v4 the numbers are described in the comments.
[...]
+static enum vmpressure_levels vmpressure_calc_level(unsigned int scanned,
unsigned int reclaimed)
+{
- unsigned long scale = scanned + reclaimed;
- unsigned long pressure;
- if (!scanned)
return VMPRESSURE_LOW;
Can you add comment here ? When !scanned happens ?
Yeah, the comment is needed. in v4 I added explanation for this case.
[...]
- mutex_lock(&vmpr->sr_lock);
- vmpr->scanned += scanned;
- vmpr->reclaimed += reclaimed;
- mutex_unlock(&vmpr->sr_lock);
- if (scanned < vmpressure_win || work_pending(&vmpr->work))
return;
- schedule_work(&vmpr->work);
+}
I'm not sure how other guys thinks but....could you place the definition of work_fn above calling it ? you call vmpressure_wk_fn(), right ?
Yup. OK, I rearranged the code a bit.
[...]
do {
vmpressure_prio(sc->gfp_mask, sc->target_mem_cgroup,
sc->nr_scanned = 0; aborted_reclaim = shrink_zones(zonelist, sc);sc->priority);
When you answers Andrew's comment and fix problems, feel free to add
Acked-by: KAMEZAWA Hiroyuki kamezawa.hiroyu@jp.fujitsu.com
Thanks a lot for the reviews, Kamezawa!
Anton