2013-07-06 04:17:04

by Alexey Kardashevskiy

[permalink] [raw]
Subject: [PATCH] hashtable: add hash_for_each_possible_rcu_notrace()

This adds hash_for_each_possible_rcu_notrace() which is basically
a notrace clone of hash_for_each_possible_rcu() which cannot be
used in real mode due to its tracing/debugging capability.

Signed-off-by: Alexey Kardashevskiy <[email protected]>
---
include/linux/hashtable.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)

diff --git a/include/linux/hashtable.h b/include/linux/hashtable.h
index a9df51f..af8b169 100644
--- a/include/linux/hashtable.h
+++ b/include/linux/hashtable.h
@@ -174,6 +174,21 @@ static inline void hash_del_rcu(struct hlist_node *node)
member)

/**
+ * hash_for_each_possible_rcu_notrace - iterate over all possible objects hashing
+ * to the same bucket in an rcu enabled hashtable in a rcu enabled hashtable
+ * @name: hashtable to iterate
+ * @obj: the type * to use as a loop cursor for each entry
+ * @member: the name of the hlist_node within the struct
+ * @key: the key of the objects to iterate over
+ *
+ * This is the same as hash_for_each_possible_rcu() except that it does
+ * not do any RCU debugging or tracing.
+ */
+#define hash_for_each_possible_rcu_notrace(name, obj, member, key) \
+ hlist_for_each_entry_rcu_notrace(obj, &name[hash_min(key, HASH_BITS(name))],\
+ member)
+
+/**
* hash_for_each_possible_safe - iterate over all possible objects hashing to the
* same bucket safe against removals
* @name: hashtable to iterate
--
1.8.3.2


2013-07-15 10:04:36

by Alexey Kardashevskiy

[permalink] [raw]
Subject: Re: [PATCH] hashtable: add hash_for_each_possible_rcu_notrace()

Anyone, ping?

On 07/06/2013 02:16 PM, Alexey Kardashevskiy wrote:
> This adds hash_for_each_possible_rcu_notrace() which is basically
> a notrace clone of hash_for_each_possible_rcu() which cannot be
> used in real mode due to its tracing/debugging capability.
>
> Signed-off-by: Alexey Kardashevskiy <[email protected]>
> ---
> include/linux/hashtable.h | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/include/linux/hashtable.h b/include/linux/hashtable.h
> index a9df51f..af8b169 100644
> --- a/include/linux/hashtable.h
> +++ b/include/linux/hashtable.h
> @@ -174,6 +174,21 @@ static inline void hash_del_rcu(struct hlist_node *node)
> member)
>
> /**
> + * hash_for_each_possible_rcu_notrace - iterate over all possible objects hashing
> + * to the same bucket in an rcu enabled hashtable in a rcu enabled hashtable
> + * @name: hashtable to iterate
> + * @obj: the type * to use as a loop cursor for each entry
> + * @member: the name of the hlist_node within the struct
> + * @key: the key of the objects to iterate over
> + *
> + * This is the same as hash_for_each_possible_rcu() except that it does
> + * not do any RCU debugging or tracing.
> + */
> +#define hash_for_each_possible_rcu_notrace(name, obj, member, key) \
> + hlist_for_each_entry_rcu_notrace(obj, &name[hash_min(key, HASH_BITS(name))],\
> + member)
> +
> +/**
> * hash_for_each_possible_safe - iterate over all possible objects hashing to the
> * same bucket safe against removals
> * @name: hashtable to iterate
>


--
Alexey

2013-07-23 02:28:18

by Alexey Kardashevskiy

[permalink] [raw]
Subject: Re: [PATCH] hashtable: add hash_for_each_possible_rcu_notrace()

Anyone, ping. Is it good, bad, ugly (ack/nack)? Thanks!

Is there any "trivial patches" list? Could not find it on vger.


On 07/15/2013 08:04 PM, Alexey Kardashevskiy wrote:
> Anyone, ping?
>
> On 07/06/2013 02:16 PM, Alexey Kardashevskiy wrote:
>> This adds hash_for_each_possible_rcu_notrace() which is basically
>> a notrace clone of hash_for_each_possible_rcu() which cannot be
>> used in real mode due to its tracing/debugging capability.
>>
>> Signed-off-by: Alexey Kardashevskiy <[email protected]>
>> ---
>> include/linux/hashtable.h | 15 +++++++++++++++
>> 1 file changed, 15 insertions(+)
>>
>> diff --git a/include/linux/hashtable.h b/include/linux/hashtable.h
>> index a9df51f..af8b169 100644
>> --- a/include/linux/hashtable.h
>> +++ b/include/linux/hashtable.h
>> @@ -174,6 +174,21 @@ static inline void hash_del_rcu(struct hlist_node *node)
>> member)
>>
>> /**
>> + * hash_for_each_possible_rcu_notrace - iterate over all possible objects hashing
>> + * to the same bucket in an rcu enabled hashtable in a rcu enabled hashtable
>> + * @name: hashtable to iterate
>> + * @obj: the type * to use as a loop cursor for each entry
>> + * @member: the name of the hlist_node within the struct
>> + * @key: the key of the objects to iterate over
>> + *
>> + * This is the same as hash_for_each_possible_rcu() except that it does
>> + * not do any RCU debugging or tracing.
>> + */
>> +#define hash_for_each_possible_rcu_notrace(name, obj, member, key) \
>> + hlist_for_each_entry_rcu_notrace(obj, &name[hash_min(key, HASH_BITS(name))],\
>> + member)
>> +
>> +/**
>> * hash_for_each_possible_safe - iterate over all possible objects hashing to the
>> * same bucket safe against removals
>> * @name: hashtable to iterate
>>
>
>


--
Alexey

2013-07-23 02:41:19

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] hashtable: add hash_for_each_possible_rcu_notrace()

On Tue, 2013-07-23 at 12:28 +1000, Alexey Kardashevskiy wrote:
> Anyone, ping. Is it good, bad, ugly (ack/nack)? Thanks!
>
> Is there any "trivial patches" list? Could not find it on vger.

Jiri Kosina has [email protected]

Also, there's kernel-janitors

http://vger.kernel.org/vger-lists.html#kernel-janitors
http://kernelnewbies.org/KernelJanitors

MAINTAINERS has an entry:

TRIVIAL PATCHES
M: Jiri Kosina <[email protected]>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
S: Maintained
K: ^Subject:.*(?i)trivial


2013-07-23 02:43:28

by Alexey Kardashevskiy

[permalink] [raw]
Subject: Re: [PATCH] hashtable: add hash_for_each_possible_rcu_notrace()

On 07/23/2013 12:41 PM, Joe Perches wrote:
> On Tue, 2013-07-23 at 12:28 +1000, Alexey Kardashevskiy wrote:
>> Anyone, ping. Is it good, bad, ugly (ack/nack)? Thanks!
>>
>> Is there any "trivial patches" list? Could not find it on vger.
>
> Jiri Kosina has [email protected]
>
> Also, there's kernel-janitors
>
> http://vger.kernel.org/vger-lists.html#kernel-janitors
> http://kernelnewbies.org/KernelJanitors
>
> MAINTAINERS has an entry:
>
> TRIVIAL PATCHES
> M: Jiri Kosina <[email protected]>
> T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
> S: Maintained
> K: ^Subject:.*(?i)trivial


Cool, thanks! But is that patch really trivial? :)


--
Alexey

2013-07-23 02:53:27

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] hashtable: add hash_for_each_possible_rcu_notrace()

On Tue, 2013-07-23 at 12:43 +1000, Alexey Kardashevskiy wrote:
> On 07/23/2013 12:41 PM, Joe Perches wrote:
> > On Tue, 2013-07-23 at 12:28 +1000, Alexey Kardashevskiy wrote:
> >> Anyone, ping. Is it good, bad, ugly (ack/nack)? Thanks!
> >> Is there any "trivial patches" list? Could not find it on vger.
[]
> > MAINTAINERS has an entry:
> > TRIVIAL PATCHES
> > M: Jiri Kosina <[email protected]>
> > T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
[]
> Cool, thanks! But is that patch really trivial? :)

:) Was that the question?

Anyway, you cc'd all the right people already.

If no one responds after a couple weeks, either
send it to Jiri or directly to Linus.

2013-07-23 07:53:00

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH] hashtable: add hash_for_each_possible_rcu_notrace()

On Mon, 2013-07-22 at 19:53 -0700, Joe Perches wrote:
> Anyway, you cc'd all the right people already.
>
> If no one responds after a couple weeks, either
> send it to Jiri or directly to Linus.

Or I'll just merge it with the rest of the series.

Cheers,
Ben.