[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130124141441.GA12745@localhost>
Date: Thu, 24 Jan 2013 22:14:41 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: Jan Kara <jack@...e.cz>
Cc: paul.szabo@...ney.edu.au, linux-mm@...ck.org,
695182@...s.debian.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Negative (setpoint-dirty) in bdi_position_ratio()
On Wed, Jan 23, 2013 at 12:54:38AM +0100, Jan Kara wrote:
> On Sun 20-01-13 11:02:10, paul.szabo@...ney.edu.au wrote:
> > In bdi_position_ratio(), get difference (setpoint-dirty) right even when
> > negative. Both setpoint and dirty are unsigned long, the difference was
> > zero-padded thus wrongly sign-extended to s64. This issue affects all
> > 32-bit architectures, does not affect 64-bit architectures where long
> > and s64 are equivalent.
> >
> > In this function, dirty is between freerun and limit, the pseudo-float x
> > is between [-1,1], expected to be negative about half the time. With
> > zero-padding, instead of a small negative x we obtained a large positive
> > one so bdi_position_ratio() returned garbage.
> >
> > Casting the difference to s64 also prevents overflow with left-shift;
> > though normally these numbers are small and I never observed a 32-bit
> > overflow there.
> >
> > (This patch does not solve the PAE OOM issue.)
> >
> > Paul Szabo psz@...hs.usyd.edu.au http://www.maths.usyd.edu.au/u/psz/
> > School of Mathematics and Statistics University of Sydney Australia
> >
> > Reported-by: Paul Szabo <psz@...hs.usyd.edu.au>
> > Reference: http://bugs.debian.org/695182
> > Signed-off-by: Paul Szabo <psz@...hs.usyd.edu.au>
> Ah, good catch. Thanks for the patch. You can add:
> Reviewed-by: Jan Kara <jack@...e.cz>
>
> I've also added CC to writeback maintainer.
Applied. Thanks! It's a good fix.
Thanks,
Fengguang
--
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