Re: linux-next: manual merge of the rcu tree with the modules and tip trees

2015-06-23 Thread Rusty Russell
Stephen Rothwell  writes:
> Hi Rusty,
>
> On Thu, 28 May 2015 17:25:07 +1000 Stephen Rothwell  
> wrote:
>>
>> Today's linux-next merge of the rcu tree got a conflict in
>> include/linux/rcupdate.h between commits 0a04b0166929 ("rcu: Move
>> lockless_dereference() out of rcupdate.h") from the modules tree and
>> c1ad348b452a ("tick: Nohz: Rework next timer evaluation") from the tip
>> tree and commits 7d0ae8086b82 ("rcu: Convert ACCESS_ONCE() to
>> READ_ONCE() and WRITE_ONCE()") and 3382adbc1bb8 ("rcu: Eliminate a few
>> CONFIG_RCU_NOCB_CPU_ALL #ifdefs") from the rcu tree.
>> 
>> I fixed it up (see below) and can carry the fix as necessary (no action
>> is required).
>> 
>> I also had to add this merge fix patch:
>> 
>> From: Stephen Rothwell 
>> Date: Thu, 28 May 2015 17:20:58 +1000
>> Subject: [PATCH] rcu: merge fix for Convert ACCESS_ONCE() to READ_ONCE() and
>>  WRITE_ONCE()
>> 
>> Signed-off-by: Stephen Rothwell 
>> ---
>>  include/linux/compiler.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/include/linux/compiler.h b/include/linux/compiler.h
>> index ba91e5c88a32..f7e7235f3a91 100644
>> --- a/include/linux/compiler.h
>> +++ b/include/linux/compiler.h
>> @@ -483,7 +483,7 @@ static __always_inline void __write_once_size(volatile 
>> void *p, void *res, int s
>>   */
>>  #define lockless_dereference(p) \
>>  ({ \
>> -typeof(p) _p1 = ACCESS_ONCE(p); \
>> +typeof(p) _p1 = READ_ONCE(p); \
>>  smp_read_barrier_depends(); /* Dependency order vs. p above. */ \
>>  (_p1); \
>>  })

Good catch.  I've apply this to my modules-next tree now, as it will
work fine pre-merge.

Thanks,
Rusty.
--
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: linux-next: manual merge of the rcu tree with the modules and tip trees

2015-06-23 Thread Stephen Rothwell
Hi Rusty,

On Thu, 28 May 2015 17:25:07 +1000 Stephen Rothwell  
wrote:
>
> Today's linux-next merge of the rcu tree got a conflict in
> include/linux/rcupdate.h between commits 0a04b0166929 ("rcu: Move
> lockless_dereference() out of rcupdate.h") from the modules tree and
> c1ad348b452a ("tick: Nohz: Rework next timer evaluation") from the tip
> tree and commits 7d0ae8086b82 ("rcu: Convert ACCESS_ONCE() to
> READ_ONCE() and WRITE_ONCE()") and 3382adbc1bb8 ("rcu: Eliminate a few
> CONFIG_RCU_NOCB_CPU_ALL #ifdefs") from the rcu tree.
> 
> I fixed it up (see below) and can carry the fix as necessary (no action
> is required).
> 
> I also had to add this merge fix patch:
> 
> From: Stephen Rothwell 
> Date: Thu, 28 May 2015 17:20:58 +1000
> Subject: [PATCH] rcu: merge fix for Convert ACCESS_ONCE() to READ_ONCE() and
>  WRITE_ONCE()
> 
> Signed-off-by: Stephen Rothwell 
> ---
>  include/linux/compiler.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/compiler.h b/include/linux/compiler.h
> index ba91e5c88a32..f7e7235f3a91 100644
> --- a/include/linux/compiler.h
> +++ b/include/linux/compiler.h
> @@ -483,7 +483,7 @@ static __always_inline void __write_once_size(volatile 
> void *p, void *res, int s
>   */
>  #define lockless_dereference(p) \
>  ({ \
> - typeof(p) _p1 = ACCESS_ONCE(p); \
> + typeof(p) _p1 = READ_ONCE(p); \
>   smp_read_barrier_depends(); /* Dependency order vs. p above. */ \
>   (_p1); \
>  })
> -- 
> 2.1.4
> 
> -- 
> Cheers,
> Stephen Rothwells...@canb.auug.org.au
> 
> diff --cc include/linux/rcupdate.h
> index ed5f66464ab3,3a4d1bf430b1..
> --- a/include/linux/rcupdate.h
> +++ b/include/linux/rcupdate.h
> @@@ -1140,13 -1063,13 +1050,13 @@@ static inline notrace void rcu_read_unl
>   #define kfree_rcu(ptr, rcu_head)\
>   __kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head))
>   
> - #if defined(CONFIG_TINY_RCU) || defined(CONFIG_RCU_NOCB_CPU_ALL)
> + #ifdef CONFIG_TINY_RCU
>  -static inline int rcu_needs_cpu(unsigned long *delta_jiffies)
>  +static inline int rcu_needs_cpu(u64 basemono, u64 *nextevt)
>   {
>  -*delta_jiffies = ULONG_MAX;
>  +*nextevt = KTIME_MAX;
>   return 0;
>   }
> - #endif /* #if defined(CONFIG_TINY_RCU) || defined(CONFIG_RCU_NOCB_CPU_ALL) 
> */
> + #endif /* #ifdef CONFIG_TINY_RCU */
>   
>   #if defined(CONFIG_RCU_NOCB_CPU_ALL)
>   static inline bool rcu_is_nocb_cpu(int cpu) { return true; }

The above resolutions are now needed when the modules tree is merged
into Linus' tree (as the tip and rcu parts have already been merged).

-- 
Cheers,
Stephen Rothwells...@canb.auug.org.au


pgpUGXSf1SXL3.pgp
Description: OpenPGP digital signature


Re: linux-next: manual merge of the rcu tree with the modules and tip trees

2015-05-29 Thread Paul E. McKenney
On Fri, May 29, 2015 at 08:56:04AM +0200, Ingo Molnar wrote:
> 
> * Paul E. McKenney  wrote:
> 
> > On Thu, May 28, 2015 at 05:25:07PM +1000, Stephen Rothwell wrote:
> > > Hi Paul,
> > > 
> > > Today's linux-next merge of the rcu tree got a conflict in
> > > include/linux/rcupdate.h between commits 0a04b0166929 ("rcu: Move
> > > lockless_dereference() out of rcupdate.h") from the modules tree and
> > > c1ad348b452a ("tick: Nohz: Rework next timer evaluation") from the tip
> > > tree and commits 7d0ae8086b82 ("rcu: Convert ACCESS_ONCE() to
> > > READ_ONCE() and WRITE_ONCE()") and 3382adbc1bb8 ("rcu: Eliminate a few
> > > CONFIG_RCU_NOCB_CPU_ALL #ifdefs") from the rcu tree.
> > > 
> > > I fixed it up (see below) and can carry the fix as necessary (no action
> > > is required).
> > 
> > Thank you, Stephen!
> > 
> > Ingo, I can send you a pull request as is or I can merge c1ad348b452a
> > with v4.1-rc3, rebase my commits on top of that, and do another cycle
> > through -next.  If I don't hear otherwise, I will be lazy and send as is,
> > so if you would prefer something different, please let me know.
> 
> I think as-is would be better, to not create extra dependencies. I can 
> resolve 
> conflicts in -tip.

Very good!  I expect to send the pull request tomorrow (Saturday)
Pacific time.

Thanx, Paul

--
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: linux-next: manual merge of the rcu tree with the modules and tip trees

2015-05-28 Thread Ingo Molnar

* Paul E. McKenney  wrote:

> On Thu, May 28, 2015 at 05:25:07PM +1000, Stephen Rothwell wrote:
> > Hi Paul,
> > 
> > Today's linux-next merge of the rcu tree got a conflict in
> > include/linux/rcupdate.h between commits 0a04b0166929 ("rcu: Move
> > lockless_dereference() out of rcupdate.h") from the modules tree and
> > c1ad348b452a ("tick: Nohz: Rework next timer evaluation") from the tip
> > tree and commits 7d0ae8086b82 ("rcu: Convert ACCESS_ONCE() to
> > READ_ONCE() and WRITE_ONCE()") and 3382adbc1bb8 ("rcu: Eliminate a few
> > CONFIG_RCU_NOCB_CPU_ALL #ifdefs") from the rcu tree.
> > 
> > I fixed it up (see below) and can carry the fix as necessary (no action
> > is required).
> 
> Thank you, Stephen!
> 
> Ingo, I can send you a pull request as is or I can merge c1ad348b452a
> with v4.1-rc3, rebase my commits on top of that, and do another cycle
> through -next.  If I don't hear otherwise, I will be lazy and send as is,
> so if you would prefer something different, please let me know.

I think as-is would be better, to not create extra dependencies. I can resolve 
conflicts in -tip.

Thanks,

Ingo
--
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: linux-next: manual merge of the rcu tree with the modules and tip trees

2015-05-28 Thread Paul E. McKenney
On Thu, May 28, 2015 at 05:25:07PM +1000, Stephen Rothwell wrote:
> Hi Paul,
> 
> Today's linux-next merge of the rcu tree got a conflict in
> include/linux/rcupdate.h between commits 0a04b0166929 ("rcu: Move
> lockless_dereference() out of rcupdate.h") from the modules tree and
> c1ad348b452a ("tick: Nohz: Rework next timer evaluation") from the tip
> tree and commits 7d0ae8086b82 ("rcu: Convert ACCESS_ONCE() to
> READ_ONCE() and WRITE_ONCE()") and 3382adbc1bb8 ("rcu: Eliminate a few
> CONFIG_RCU_NOCB_CPU_ALL #ifdefs") from the rcu tree.
> 
> I fixed it up (see below) and can carry the fix as necessary (no action
> is required).

Thank you, Stephen!

Ingo, I can send you a pull request as is or I can merge c1ad348b452a
with v4.1-rc3, rebase my commits on top of that, and do another cycle
through -next.  If I don't hear otherwise, I will be lazy and send as is,
so if you would prefer something different, please let me know.

Thanx, Paul

> I also had to add this merge fix patch:
> 
> From: Stephen Rothwell 
> Date: Thu, 28 May 2015 17:20:58 +1000
> Subject: [PATCH] rcu: merge fix for Convert ACCESS_ONCE() to READ_ONCE() and
>  WRITE_ONCE()
> 
> Signed-off-by: Stephen Rothwell 
> ---
>  include/linux/compiler.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/compiler.h b/include/linux/compiler.h
> index ba91e5c88a32..f7e7235f3a91 100644
> --- a/include/linux/compiler.h
> +++ b/include/linux/compiler.h
> @@ -483,7 +483,7 @@ static __always_inline void __write_once_size(volatile 
> void *p, void *res, int s
>   */
>  #define lockless_dereference(p) \
>  ({ \
> - typeof(p) _p1 = ACCESS_ONCE(p); \
> + typeof(p) _p1 = READ_ONCE(p); \
>   smp_read_barrier_depends(); /* Dependency order vs. p above. */ \
>   (_p1); \
>  })
> -- 
> 2.1.4
> 
> -- 
> Cheers,
> Stephen Rothwells...@canb.auug.org.au
> 
> diff --cc include/linux/rcupdate.h
> index ed5f66464ab3,3a4d1bf430b1..
> --- a/include/linux/rcupdate.h
> +++ b/include/linux/rcupdate.h
> @@@ -1140,13 -1063,13 +1050,13 @@@ static inline notrace void rcu_read_unl
>   #define kfree_rcu(ptr, rcu_head)\
>   __kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head))
>   
> - #if defined(CONFIG_TINY_RCU) || defined(CONFIG_RCU_NOCB_CPU_ALL)
> + #ifdef CONFIG_TINY_RCU
>  -static inline int rcu_needs_cpu(unsigned long *delta_jiffies)
>  +static inline int rcu_needs_cpu(u64 basemono, u64 *nextevt)
>   {
>  -*delta_jiffies = ULONG_MAX;
>  +*nextevt = KTIME_MAX;
>   return 0;
>   }
> - #endif /* #if defined(CONFIG_TINY_RCU) || defined(CONFIG_RCU_NOCB_CPU_ALL) 
> */
> + #endif /* #ifdef CONFIG_TINY_RCU */
>   
>   #if defined(CONFIG_RCU_NOCB_CPU_ALL)
>   static inline bool rcu_is_nocb_cpu(int cpu) { return true; }


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


linux-next: manual merge of the rcu tree with the modules and tip trees

2015-05-28 Thread Stephen Rothwell
Hi Paul,

Today's linux-next merge of the rcu tree got a conflict in
include/linux/rcupdate.h between commits 0a04b0166929 ("rcu: Move
lockless_dereference() out of rcupdate.h") from the modules tree and
c1ad348b452a ("tick: Nohz: Rework next timer evaluation") from the tip
tree and commits 7d0ae8086b82 ("rcu: Convert ACCESS_ONCE() to
READ_ONCE() and WRITE_ONCE()") and 3382adbc1bb8 ("rcu: Eliminate a few
CONFIG_RCU_NOCB_CPU_ALL #ifdefs") from the rcu tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

I also had to add this merge fix patch:

From: Stephen Rothwell 
Date: Thu, 28 May 2015 17:20:58 +1000
Subject: [PATCH] rcu: merge fix for Convert ACCESS_ONCE() to READ_ONCE() and
 WRITE_ONCE()

Signed-off-by: Stephen Rothwell 
---
 include/linux/compiler.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index ba91e5c88a32..f7e7235f3a91 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -483,7 +483,7 @@ static __always_inline void __write_once_size(volatile void 
*p, void *res, int s
  */
 #define lockless_dereference(p) \
 ({ \
-   typeof(p) _p1 = ACCESS_ONCE(p); \
+   typeof(p) _p1 = READ_ONCE(p); \
smp_read_barrier_depends(); /* Dependency order vs. p above. */ \
(_p1); \
 })
-- 
2.1.4

-- 
Cheers,
Stephen Rothwells...@canb.auug.org.au

diff --cc include/linux/rcupdate.h
index ed5f66464ab3,3a4d1bf430b1..
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@@ -1140,13 -1063,13 +1050,13 @@@ static inline notrace void rcu_read_unl
  #define kfree_rcu(ptr, rcu_head)  \
__kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head))
  
- #if defined(CONFIG_TINY_RCU) || defined(CONFIG_RCU_NOCB_CPU_ALL)
+ #ifdef CONFIG_TINY_RCU
 -static inline int rcu_needs_cpu(unsigned long *delta_jiffies)
 +static inline int rcu_needs_cpu(u64 basemono, u64 *nextevt)
  {
 -  *delta_jiffies = ULONG_MAX;
 +  *nextevt = KTIME_MAX;
return 0;
  }
- #endif /* #if defined(CONFIG_TINY_RCU) || defined(CONFIG_RCU_NOCB_CPU_ALL) */
+ #endif /* #ifdef CONFIG_TINY_RCU */
  
  #if defined(CONFIG_RCU_NOCB_CPU_ALL)
  static inline bool rcu_is_nocb_cpu(int cpu) { return true; }


pgp9nqBlxVkLM.pgp
Description: OpenPGP digital signature