[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140520052452.GG18954@dastard>
Date: Tue, 20 May 2014 15:24:52 +1000
From: Dave Chinner <david@...morbit.com>
To: Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>
Cc: riel@...hat.com, kosaki.motohiro@...fujitsu.com,
fengguang.wu@...el.com, kamezawa.hiroyu@...fujitsu.com,
linux-kernel@...r.kernel.org, xfs@....sgi.com
Subject: Re: [PATCH] mm/vmscan: Do not block forever at
shrink_inactive_list().
On Tue, May 20, 2014 at 12:54:29PM +0900, Tetsuo Handa wrote:
> Dave Chinner wrote:
> > So, XFS should be passing kswapd context to the workqueue allocation
> > context. The patch below does this.
> >
> > Tetsuo-san, when it comes to problems involving XFS, you should
> > really CC xfs@....sgi.com because very few people really know how
> > XFS works and even fewer still know how it is supposed to interact
> > with memory reclaim....
>
> Thank you for the patch, but ...
>
> #define PF_KSWAPD 0x00040000 /* I am kswapd */
>
> static inline int current_is_kswapd(void)
> {
> return current->flags & PF_KSWAPD;
> }
> I think ((char) (current->flags & 0x00040000)) == 0.
> Your patch wants
>
> -args->kswapd = current_is_kswapd();
> +args->kswapd = (current_is_kswapd() != 0);
Thanks for pointing that out, but I think:
-static inline int current_is_kswapd(void)
+static inline bool current_is_kswapd(void)
is a better solution. It can only be true or false.
But regardless, I need to change the boolean options in that XFS
structure to be, well, booleans.
Cheers,
dave.
--
Dave Chinner
david@...morbit.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists