Messages in this thread | | | Date | Fri, 6 Nov 2009 13:15:45 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [MM] Make mm counters per cpu instead of atomic V2 |
| |
On Thu, 5 Nov 2009 10:36:06 -0500 (EST) Christoph Lameter <cl@linux-foundation.org> wrote:
> +static inline unsigned long get_mm_rss(struct mm_struct *mm) > +{ > + int cpu; > + unsigned long r = 0; > + > + for_each_possible_cpu(cpu) { > + struct mm_counter *c = per_cpu_ptr(mm->rss, cpu); > + > + r = c->file + c->anon; > + } > + > + return r; > +} > + > +static inline void update_hiwater_rss(struct mm_struct *mm) > +{ > + unsigned long _rss = get_mm_rss(mm); > + if (mm->hiwater_rss < _rss) > + mm->hiwater_rss = _rss; > +} > +
I'm sorry for my replies are scatterd.
Isn't it better to add some filter in following path ?
== static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma, enum ttu_flags flags) { <snip> /* Update high watermark before we lower rss */ update_hiwater_rss(mm); ==
Thanks, -Kame
| |