Re: [Page Allocator] when is init_per_zone_wmark_min called to firstinitialize the watermarks, reserved memory etc?

From: Michal Hocko
Date: Tue Dec 06 2011 - 04:55:00 EST


On Tue 06-12-11 03:25:29, zhihua che wrote:
> 2011/12/6 zhihua che <zhihua.che@xxxxxxxxx>:
> > Hi, everyone
> >
> >        I'm reading the linux kernel codes, and now focusing on memory
> > management. I came across a simple problem:).
> >        I know the every zone keeps three water marks to control the
> > allocator's behavior and I find the three watermarks is initialized in
> > init_per_zone_wmark_min.
> > Unfortunately, I can't find when this function is called FIRSTduring
> > the kernel booting process. I searched the source codes using LXR and
> > cscope and got nothing.
> > I guess I missed something but I have no any idea.
> >
> > harvey.
>
>
> Maybe I'm closer the truth:-)
> I find this function is defined as a module entry function (I should'v
> found this earlier). As far as I know module entry functions are
> called at the end of start_kernel() by rest_init(), whereas page
> allocator / buddy system is used before they are called. For example,
> __get_free_pages() is called in kmem_cache_init() which in turn is
> called in start_kernel() earlier than rest_init().

Yes, this is correct. We do live without watermarks (resp. with 0) for
some time and we rely that we have sufficient memory for that time (who
we would reclaim from when no processes exist - apart from init and few
kernel threads).
kswapd is started around the same time.

HTH
--
Michal Hocko
SUSE Labs
SUSE LINUX s.r.o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/