* Jan Kara <jack@xxxxxxx>: > [...] The patch works for me. Tested it a couple of times on several machines without triggering the issue. Thanks for the fix. > From 1fd707552a67adf869958e479910d2f70452351b Mon Sep 17 00:00:00 2001 > From: Jan Kara <jack@xxxxxxx> > Date: Mon, 24 Sep 2012 16:17:16 +0200 > Subject: [PATCH] lib: Fix corruption of denominator in flexible proportions > > When racing with CPU hotplug, percpu_counter_sum() can return negative > values for the number of observed events. This confuses fprop_new_period(), > which uses unsigned type and as a result number of events is set to big > *positive* number. From that moment on, things go pear shaped and can result > e.g. in division by zero as denominator is later truncated to 32-bits. > > Fix the issue by using a signed type in fprop_new_period(). That makes us > bail out from the function without doing anything (mistakenly) thinking > there are no events to age. That makes aging somewhat inaccurate but getting > accurate data would be rather hard. > > Reported-by: Borislav Petkov <bp@xxxxxxxxx> > Reported-by: Srivatsa S. Bhat <srivatsa.bhat@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> Tested-by: Conny Seidel <conny.seidel@xxxxxxx> > --- > lib/flex_proportions.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/lib/flex_proportions.c b/lib/flex_proportions.c > index c785554..ebf3bac 100644 > --- a/lib/flex_proportions.c > +++ b/lib/flex_proportions.c > @@ -62,7 +62,7 @@ void fprop_global_destroy(struct fprop_global *p) > */ > bool fprop_new_period(struct fprop_global *p, int periods) > { > - u64 events; > + s64 events; > unsigned long flags; > > local_irq_save(flags); > -- > 1.7.1 > -- Kind regards. Conny Seidel ################################################################## # Email : conny.seidel@xxxxxxx GnuPG-Key : 0xA6AB055D # # Fingerprint: 17C4 5DB2 7C4C C1C7 1452 8148 F139 7C09 A6AB 055D # ################################################################## # Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach # # General Managers: Alberto Bozzo # # Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen # # HRB Nr. 43632 # ################################################################## -- 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>