On Tue, Jul 05, 2016 at 01:57:35PM +0800, Yu Chen wrote:
> On Tue, Jul 5, 2016 at 11:19 AM, Aaron Lu <aaron...@intel.com> wrote:
> > Resend:
> > This is a resend, the original patch doesn't catch much attention.
> > It may not be a big deal for swap devices that used to be hosted on
> > HDD but with devices like 3D Xpoint to be used as swap device, it could
> > make a real difference if we consider NUMA information when doing IO.
> > Comments are appreciated, thanks for your time.
> >
> -------------------------%<-------------------------
> > diff --git a/mm/vmscan.c b/mm/vmscan.c
> > index 71b1c29948db..dd7e44a315b0 100644
> > --- a/mm/vmscan.c
> > +++ b/mm/vmscan.c
> > @@ -3659,9 +3659,11 @@ void kswapd_stop(int nid)
> >
> >  static int __init kswapd_init(void)
> >  {
> > -       int nid;
> > +       int nid, err;
> >
> > -       swap_setup();
> > +       err = swap_setup();
> > +       if (err)
> > +               return err;
> >         for_each_node_state(nid, N_MEMORY)
> >                 kswapd_run(nid);
> >         hotcpu_notifier(cpu_callback, 0);
> In original implementation, although swap_setup failed,

In current implementaion swap_setup never fail :-)

> the swapd would also be created, since swapd is
> not only  used for swap out but also for other page reclaim,
> so this change above might modify its semantic? Sorry if
> I understand incorrectly.

Indeed it's a behaviour change. The only reason swap_setup can return an
error code now is when it fails to allocate nr_node_ids * sizeof(struct
plist_head) memory and if that happens, I don't think it makes much
sense to continue boot the system.

Thanks,
Aaron

Reply via email to