Re: [PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Jens Axboe

On 03/04/2015 08:37 AM, Tejun Heo wrote:

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.

Fixes: c42843f2f0bb ("writeback: introduce smoothed global dirty limit")
Signed-off-by: Tejun Heo 
Acked-by: Jan Kara 
Cc: Wu Fengguang 
Cc: Jens Axboe 
Cc: sta...@vger.kernel.org
---
Added the "fixes" tag.  Jens, can you please route this one?


Yup will do, thanks Tejun.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Tejun Heo
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.

Fixes: c42843f2f0bb ("writeback: introduce smoothed global dirty limit")
Signed-off-by: Tejun Heo 
Acked-by: Jan Kara 
Cc: Wu Fengguang 
Cc: Jens Axboe 
Cc: sta...@vger.kernel.org
---
Added the "fixes" tag.  Jens, can you please route this one?

Thanks.

 mm/page-writeback.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Jens Axboe

On 03/04/2015 08:30 AM, Jan Kara wrote:

On Wed 04-03-15 10:22:43, Tejun Heo wrote:

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.

   Looks good. You can add:
Reviewed-by: Jan Kara 


We should add that it fixes c42843f2f0bbc (from 2011!) as well.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Jan Kara
On Wed 04-03-15 10:22:43, Tejun Heo wrote:
> 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.
  Looks good. You can add:
Reviewed-by: Jan Kara 

Honza

> 
> Signed-off-by: Tejun Heo 
> Cc: Wu Fengguang 
> Cc: Jan Kara 
> Cc: Jens Axboe 
> Cc: sta...@vger.kernel.org
> ---
>  mm/page-writeback.c |2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> --- a/mm/page-writeback.c
> +++ b/mm/page-writeback.c
> @@ -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
-- 
Jan Kara 
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Tejun Heo
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.

Signed-off-by: Tejun Heo 
Cc: Wu Fengguang 
Cc: Jan Kara 
Cc: Jens Axboe 
Cc: sta...@vger.kernel.org
---
 mm/page-writeback.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Jan Kara
On Wed 04-03-15 10:22:43, Tejun Heo wrote:
 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.
  Looks good. You can add:
Reviewed-by: Jan Kara j...@suse.cz

Honza

 
 Signed-off-by: Tejun Heo t...@kernel.org
 Cc: Wu Fengguang fengguang...@intel.com
 Cc: Jan Kara j...@suse.cz
 Cc: Jens Axboe ax...@kernel.dk
 Cc: sta...@vger.kernel.org
 ---
  mm/page-writeback.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 --- a/mm/page-writeback.c
 +++ b/mm/page-writeback.c
 @@ -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
-- 
Jan Kara j...@suse.cz
SUSE Labs, CR
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Tejun Heo
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.

Signed-off-by: Tejun Heo t...@kernel.org
Cc: Wu Fengguang fengguang...@intel.com
Cc: Jan Kara j...@suse.cz
Cc: Jens Axboe ax...@kernel.dk
Cc: sta...@vger.kernel.org
---
 mm/page-writeback.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -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 from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Tejun Heo
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.

Fixes: c42843f2f0bb (writeback: introduce smoothed global dirty limit)
Signed-off-by: Tejun Heo t...@kernel.org
Acked-by: Jan Kara j...@suse.cz
Cc: Wu Fengguang fengguang...@intel.com
Cc: Jens Axboe ax...@kernel.dk
Cc: sta...@vger.kernel.org
---
Added the fixes tag.  Jens, can you please route this one?

Thanks.

 mm/page-writeback.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -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 from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Jens Axboe

On 03/04/2015 08:37 AM, Tejun Heo wrote:

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.

Fixes: c42843f2f0bb (writeback: introduce smoothed global dirty limit)
Signed-off-by: Tejun Heo t...@kernel.org
Acked-by: Jan Kara j...@suse.cz
Cc: Wu Fengguang fengguang...@intel.com
Cc: Jens Axboe ax...@kernel.dk
Cc: sta...@vger.kernel.org
---
Added the fixes tag.  Jens, can you please route this one?


Yup will do, thanks Tejun.

--
Jens Axboe

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH block/for-4.0-fixes] writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()

2015-03-04 Thread Jens Axboe

On 03/04/2015 08:30 AM, Jan Kara wrote:

On Wed 04-03-15 10:22:43, Tejun Heo wrote:

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.

   Looks good. You can add:
Reviewed-by: Jan Kara j...@suse.cz


We should add that it fixes c42843f2f0bbc (from 2011!) as well.

--
Jens Axboe

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/