Re: [PATCH] memsw: handle swapaccount kernel parameter correctly

Michal Hocko
2011-01-27T09:30:03Z

On Thu 27-01-11 18:03:30, KAMEZAWA Hiroyuki wrote:
> On Thu, 27 Jan 2011 09:23:20 +0100
> Michal Hocko <mhocko@suse.cz> wrote:
[...]
> > diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> > index db76ef7..cea2be48 100644
> > --- a/mm/memcontrol.c
> > +++ b/mm/memcontrol.c
> > @@ -5013,9 +5013,9 @@ struct cgroup_subsys mem_cgroup_subsys = {
> > static int __init enable_swap_account(char *s)
> > {
> > /* consider enabled if no parameter or 1 is given */
> > - if (!s || !strcmp(s, "1"))
> > + if (!(*s) || !strcmp(s, "=1"))
> > really_do_swap_account = 1;
> > - else if (!strcmp(s, "0"))
> > + else if (!strcmp(s, "=0"))
> > really_do_swap_account = 0;
> > return 1;
> > }
>
> Hmm, usual callser of __setup() includes '=' to parameter name, as
>
> mm/hugetlb.c:__setup("hugepages=", hugetlb_nrpages_setup);
> mm/hugetlb.c:__setup("default_hugepagesz=", hugetlb_default_setup);
>
> How about moving "=" to __setup() ?

I have considered that as well but then we couldn't use swapaccount
parameter without any value because the parameter parsing matches the
whole string.
I found it better to have consistent [no]swapaccount with the =0|1
extension rather than keeping = in the setup like other users.

Sounds reasonable?