writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()
Subsystems (3)
PATCH 1/1 writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()
global_update_bandwidth() uses static variable update_time as the timestamp for the last update but forgets to initialize it to INITIALIZE_JIFFIES.
This means that global_dirty_limit will be 5 mins into the future on 32bit and some large amount jiffies into the past on 64bit. This isn't critical as the only effect is that global_dirty_limit won't be updated for the first 5 mins after booting on 32bit machines, especially given the auxiliary nature of global_dirty_limit's role - protecting against global dirty threshold's sudden dips; however, it does lead to unintended suboptimal behavior. Fix it.
--- mm/page-writeback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
mm/page-writeback.c +1 -1
@@ -922,7 +922,7 @@ static void global_update_bandwidth(unsi unsigned long now) {static DEFINE_SPINLOCK (dirty_lock); -static unsigned long update_time; +static unsigned long update_time =INITIAL_JIFFIES ;/* * check locklessly first to optimize away locking for the most time
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 11 lines · Tejun Heo
global_update_bandwidth()uses static variableupdate_timeas the timestamp for the last update but forgets to initialize it toINITIALIZE_JIFFIES.This means that
global_dirty_limitwill be 5 mins into the future on 32bit and some large amount jiffies into the past on 64bit. This isn't critical as the only effect is thatglobal_dirty_limitwon't be updated for the first 5 mins after booting on 32bit machines, especially given the auxiliary nature of global_dirty_limit's role - protecting against global dirty threshold's sudden dips; however, it does lead to unintended suboptimal behavior. Fix it.
Looks good. You can add:
Honza
Quoted 21 lines
Signed-off-by Tejun Heo <[email protected]>Cc Wu Fengguang <[email protected]>Cc Jan Kara <[email protected]>Cc Jens Axboe <[email protected]>--- mm/page-writeback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)mm/page-writeback.c +1
-1@@ -922,7 +922,7 @@ static void global_update_bandwidth(unsi unsigned long now) {static DEFINE_SPINLOCK (dirty_lock); -static unsigned long update_time; +static unsigned long update_time =INITIAL_JIFFIES ;/* * check locklessly first to optimize away locking for the most time
Signature · 8 lines
Jan Kara <[email protected]> SUSE Labs, CR -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 12 lines · Jan Kara
Quoted 11 lines · Tejun Heo
global_update_bandwidth()uses static variableupdate_timeas the timestamp for the last update but forgets to initialize it toINITIALIZE_JIFFIES.This means that
global_dirty_limitwill be 5 mins into the future on 32bit and some large amount jiffies into the past on 64bit. This isn't critical as the only effect is thatglobal_dirty_limitwon't be updated for the first 5 mins after booting on 32bit machines, especially given the auxiliary nature of global_dirty_limit's role - protecting against global dirty threshold's sudden dips; however, it does lead to unintended suboptimal behavior. Fix it.
Quoted 2 lines
Looks good. You can add:
Reviewed-by Jan Kara <[email protected]>
We should add that it fixes c42843f2f0bbc (from 2011!) as well.
Signature · 7 lines
Jens Axboe -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
PATCH 1/1 writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()
Subject: writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()
global_update_bandwidth() uses static variable update_time as the timestamp for the last update but forgets to initialize it to INITIALIZE_JIFFIES.
This means that global_dirty_limit will be 5 mins into the future on 32bit and some large amount jiffies into the past on 64bit. This isn't critical as the only effect is that global_dirty_limit won't be updated for the first 5 mins after booting on 32bit machines, especially given the auxiliary nature of global_dirty_limit's role - protecting against global dirty threshold's sudden dips; however, it does lead to unintended suboptimal behavior. Fix it.
---
Added the "fixes" tag. Jens, can you please route this one?
Thanks.
mm/page-writeback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
mm/page-writeback.c +1 -1
@@ -922,7 +922,7 @@ static void global_update_bandwidth(unsi unsigned long now) {static DEFINE_SPINLOCK (dirty_lock); -static unsigned long update_time; +static unsigned long update_time =INITIAL_JIFFIES ;/* * check locklessly first to optimize away locking for the most time
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 14 lines · Tejun Heo
Subject: writeback: add missing
INITIAL_JIFFIESinit inglobal_update_bandwidth()
global_update_bandwidth()uses static variableupdate_timeas the timestamp for the last update but forgets to initialize it toINITIALIZE_JIFFIES.This means that
global_dirty_limitwill be 5 mins into the future on 32bit and some large amount jiffies into the past on 64bit. This isn't critical as the only effect is thatglobal_dirty_limitwon't be updated for the first 5 mins after booting on 32bit machines, especially given the auxiliary nature of global_dirty_limit's role - protecting against global dirty threshold's sudden dips; however, it does lead to unintended suboptimal behavior. Fix it.
Quoted 8 lines
Fixes c42843f2f0bb ("writeback: introduce smoothed global dirty limit")Signed-off-by Tejun Heo <[email protected]>Acked-by Jan Kara <[email protected]>Cc Wu Fengguang <[email protected]>Cc Jens Axboe <[email protected]>---
Added the "fixes" tag. Jens, can you please route this one?
Yup will do, thanks Tejun.
Signature · 7 lines
Jens Axboe -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>