Re: [Patch] Call cond_resched() at bottom of main look in balance_pgdat()

From: Andrew Morton
Date: Mon Jun 28 2010 - 15:12:07 EST


On Wed, 23 Jun 2010 08:07:34 +0900
Minchan Kim <minchan.kim@xxxxxxxxx> wrote:

> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
> Reviewed-by: Minchan Kim <minchan.kim@xxxxxxxxx>
> Reviewed-by: Rik van Riel <riel@xxxxxxxxxx>
> Reviewed-by: KOSAKI Motohiro<kosaki.motohiro@xxxxxxxxxxxxxx>

The patch is a bit sucky, isn't it?

a) the cond_resched() which Larry's patch adds is very special. It
_looks_ like a random preemption point but it's actually critical to
the correct functioning of the system. That's utterly unobvious to
anyone who reads the code, so a comment explaining this *must* be
included.

b) cond_resched() is a really crappy way of solving the problem
which Larry described. It will sit there chewing away CPU time
until kswapd's timeslice expires.

I suppose we can live with b) although it _does_ suck and I'd suggest
that the comment include a big FIXME, so someone might fix it.

Larry, please fix a), gather the acks and reviewed-by's, update the
changelog to identify the commit which broke it and resend?

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