2020-07-13 17:49:31

by Madhuparna Bhowmik

[permalink] [raw]
Subject: [PATCH] rculist: Fix _list_check_srcu() macro

From: Madhuparna Bhowmik <[email protected]>

This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
False.

Reported-by: kernel test robot <[email protected]>
Signed-off-by: Madhuparna Bhowmik <[email protected]>
---
include/linux/rculist.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/rculist.h b/include/linux/rculist.h
index 516b4feb2682..a435ad62b90b 100644
--- a/include/linux/rculist.h
+++ b/include/linux/rculist.h
@@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
#define __list_check_rcu(dummy, cond, extra...) \
({ check_arg_count_one(extra); })

-#define __list_check_srcu(cond)
+#define __list_check_srcu(cond) TRUE
#endif

/*
--
2.17.1


2020-07-13 21:03:18

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] rculist: Fix _list_check_srcu() macro

On Mon, Jul 13, 2020 at 11:18:46PM +0530, [email protected] wrote:
> From: Madhuparna Bhowmik <[email protected]>
>
> This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
> False.
>
> Reported-by: kernel test robot <[email protected]>
> Signed-off-by: Madhuparna Bhowmik <[email protected]>

Thank you, Madhuparna! I am folding this into your original, but
with lowercase "true".

Thanx, Paul

> ---
> include/linux/rculist.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> index 516b4feb2682..a435ad62b90b 100644
> --- a/include/linux/rculist.h
> +++ b/include/linux/rculist.h
> @@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
> #define __list_check_rcu(dummy, cond, extra...) \
> ({ check_arg_count_one(extra); })
>
> -#define __list_check_srcu(cond)
> +#define __list_check_srcu(cond) TRUE
> #endif
>
> /*
> --
> 2.17.1
>

2020-07-13 21:13:56

by Madhuparna Bhowmik

[permalink] [raw]
Subject: Re: [PATCH] rculist: Fix _list_check_srcu() macro

On Mon, Jul 13, 2020 at 02:02:44PM -0700, Paul E. McKenney wrote:
> On Mon, Jul 13, 2020 at 11:18:46PM +0530, [email protected] wrote:
> > From: Madhuparna Bhowmik <[email protected]>
> >
> > This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
> > False.
> >
> > Reported-by: kernel test robot <[email protected]>
> > Signed-off-by: Madhuparna Bhowmik <[email protected]>
>
> Thank you, Madhuparna! I am folding this into your original, but
> with lowercase "true".
>
I am really sorry and thanks for applying this with the correction.

Regards,
Madhuparna
> Thanx, Paul
>
> > ---
> > include/linux/rculist.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> > index 516b4feb2682..a435ad62b90b 100644
> > --- a/include/linux/rculist.h
> > +++ b/include/linux/rculist.h
> > @@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
> > #define __list_check_rcu(dummy, cond, extra...) \
> > ({ check_arg_count_one(extra); })
> >
> > -#define __list_check_srcu(cond)
> > +#define __list_check_srcu(cond) TRUE
> > #endif
> >
> > /*
> > --
> > 2.17.1
> >

2020-07-13 21:26:58

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] rculist: Fix _list_check_srcu() macro

On Tue, Jul 14, 2020 at 02:43:16AM +0530, Madhuparna Bhowmik wrote:
> On Mon, Jul 13, 2020 at 02:02:44PM -0700, Paul E. McKenney wrote:
> > On Mon, Jul 13, 2020 at 11:18:46PM +0530, [email protected] wrote:
> > > From: Madhuparna Bhowmik <[email protected]>
> > >
> > > This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
> > > False.
> > >
> > > Reported-by: kernel test robot <[email protected]>
> > > Signed-off-by: Madhuparna Bhowmik <[email protected]>
> >
> > Thank you, Madhuparna! I am folding this into your original, but
> > with lowercase "true".
> >
> I am really sorry and thanks for applying this with the correction.

No worries! Just thought that I should mention it in case there was
some subtle reason why TRUE was needed in this case. ;-)

Thanx, Paul

> > > ---
> > > include/linux/rculist.h | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> > > index 516b4feb2682..a435ad62b90b 100644
> > > --- a/include/linux/rculist.h
> > > +++ b/include/linux/rculist.h
> > > @@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
> > > #define __list_check_rcu(dummy, cond, extra...) \
> > > ({ check_arg_count_one(extra); })
> > >
> > > -#define __list_check_srcu(cond)
> > > +#define __list_check_srcu(cond) TRUE
> > > #endif
> > >
> > > /*
> > > --
> > > 2.17.1
> > >

2020-07-13 23:42:12

by Madhuparna Bhowmik

[permalink] [raw]
Subject: Re: [PATCH] rculist: Fix _list_check_srcu() macro

On Mon, Jul 13, 2020 at 02:26:24PM -0700, Paul E. McKenney wrote:
> On Tue, Jul 14, 2020 at 02:43:16AM +0530, Madhuparna Bhowmik wrote:
> > On Mon, Jul 13, 2020 at 02:02:44PM -0700, Paul E. McKenney wrote:
> > > On Mon, Jul 13, 2020 at 11:18:46PM +0530, [email protected] wrote:
> > > > From: Madhuparna Bhowmik <[email protected]>
> > > >
> > > > This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
> > > > False.
> > > >
> > > > Reported-by: kernel test robot <[email protected]>
> > > > Signed-off-by: Madhuparna Bhowmik <[email protected]>
> > >
> > > Thank you, Madhuparna! I am folding this into your original, but
> > > with lowercase "true".
> > >
> > I am really sorry and thanks for applying this with the correction.
>
> No worries! Just thought that I should mention it in case there was
> some subtle reason why TRUE was needed in this case. ;-)
>
No, it was just a mistake.

Thanks,
Madhuparna

> Thanx, Paul
>
> > > > ---
> > > > include/linux/rculist.h | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> > > > index 516b4feb2682..a435ad62b90b 100644
> > > > --- a/include/linux/rculist.h
> > > > +++ b/include/linux/rculist.h
> > > > @@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
> > > > #define __list_check_rcu(dummy, cond, extra...) \
> > > > ({ check_arg_count_one(extra); })
> > > >
> > > > -#define __list_check_srcu(cond)
> > > > +#define __list_check_srcu(cond) TRUE
> > > > #endif
> > > >
> > > > /*
> > > > --
> > > > 2.17.1
> > > >

2020-07-14 02:41:06

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] rculist: Fix _list_check_srcu() macro

Hi,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on rcu/dev]
[cannot apply to v5.8-rc5 next-20200713]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/madhuparnabhowmik10-gmail-com/rculist-Fix-_list_check_srcu-macro/20200714-015126
base: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
config: x86_64-rhel-7.6 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
# save the attached .config to linux build tree
make W=1 ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

In file included from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/kvm_host.h:12,
from arch/x86/kvm/mmu/page_track.c:14:
arch/x86/kvm/mmu/page_track.c: In function 'kvm_page_track_write':
>> include/linux/rculist.h:76:33: error: 'TRUE' undeclared (first use in this function)
76 | #define __list_check_srcu(cond) TRUE
| ^~~~
include/linux/rculist.h:727:7: note: in expansion of macro '__list_check_srcu'
727 | for (__list_check_srcu(cond), \
| ^~~~~~~~~~~~~~~~~
arch/x86/kvm/mmu/page_track.c:232:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
232 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rculist.h:76:33: note: each undeclared identifier is reported only once for each function it appears in
76 | #define __list_check_srcu(cond) TRUE
| ^~~~
include/linux/rculist.h:727:7: note: in expansion of macro '__list_check_srcu'
727 | for (__list_check_srcu(cond), \
| ^~~~~~~~~~~~~~~~~
arch/x86/kvm/mmu/page_track.c:232:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
232 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rculist.h:727:30: warning: left-hand operand of comma expression has no effect [-Wunused-value]
727 | for (__list_check_srcu(cond), \
| ^
arch/x86/kvm/mmu/page_track.c:232:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
232 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kvm/mmu/page_track.c: In function 'kvm_page_track_flush_slot':
>> include/linux/rculist.h:76:33: error: 'TRUE' undeclared (first use in this function)
76 | #define __list_check_srcu(cond) TRUE
| ^~~~
include/linux/rculist.h:727:7: note: in expansion of macro '__list_check_srcu'
727 | for (__list_check_srcu(cond), \
| ^~~~~~~~~~~~~~~~~
arch/x86/kvm/mmu/page_track.c:258:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
258 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rculist.h:727:30: warning: left-hand operand of comma expression has no effect [-Wunused-value]
727 | for (__list_check_srcu(cond), \
| ^
arch/x86/kvm/mmu/page_track.c:258:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
258 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~

vim +/TRUE +76 include/linux/rculist.h

58
59 #ifdef CONFIG_PROVE_RCU_LIST
60 #define __list_check_rcu(dummy, cond, extra...) \
61 ({ \
62 check_arg_count_one(extra); \
63 RCU_LOCKDEP_WARN(!(cond) && !rcu_read_lock_any_held(), \
64 "RCU-list traversed in non-reader section!"); \
65 })
66
67 #define __list_check_srcu(cond) \
68 ({ \
69 RCU_LOCKDEP_WARN(!(cond), \
70 "RCU-list traversed without holding the required lock!");\
71 })
72 #else
73 #define __list_check_rcu(dummy, cond, extra...) \
74 ({ check_arg_count_one(extra); })
75
> 76 #define __list_check_srcu(cond) TRUE
77 #endif
78

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (4.59 kB)
.config.gz (48.14 kB)
Download all attachments