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->priority); > > sc->nr_scanned = 0; > > aborted_reclaim = shrink_zones(zonelist, sc); > > > > > > When you answers Andrew's comment and fix problems, feel free to add > > Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> Thanks a lot for the reviews, Kamezawa! Anton -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>