Re: [RFC RESEND PATCH] swap: choose swap device according to numa node

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.lu@xxxxxxxxx> 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

--
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>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]