diff mbox series

[RFC,v5,1/3] rcu: introduce rcu_read_is_locked()

Message ID 20230117115511.3215273-2-xuchuangxclwt@bytedance.com (mailing list archive)
State New, archived
Headers show
Series migration: reduce time of loading non-iterable vmstate | expand

Commit Message

Chuang Xu Jan. 17, 2023, 11:55 a.m. UTC
add rcu_read_is_locked() to detect holding of rcu lock.

Signed-off-by: Chuang Xu <xuchuangxclwt@bytedance.com>
---
 include/qemu/rcu.h | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Juan Quintela Feb. 2, 2023, 10:59 a.m. UTC | #1
Chuang Xu <xuchuangxclwt@bytedance.com> wrote:
> add rcu_read_is_locked() to detect holding of rcu lock.
>
> Signed-off-by: Chuang Xu <xuchuangxclwt@bytedance.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>

Althought I think that petting a review from Paolo or anyone that knows
more than RCU could be a good idea.

> ---
>  include/qemu/rcu.h | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h
> index b063c6fde8..719916d9d3 100644
> --- a/include/qemu/rcu.h
> +++ b/include/qemu/rcu.h
> @@ -119,6 +119,13 @@ static inline void rcu_read_unlock(void)
>      }
>  }
>  
> +static inline bool rcu_read_is_locked(void)
> +{
> +    struct rcu_reader_data *p_rcu_reader = get_ptr_rcu_reader();
> +
> +    return p_rcu_reader->depth > 0;
> +}
> +
>  extern void synchronize_rcu(void);
>  
>  /*
Chuang Xu Feb. 14, 2023, 7:57 a.m. UTC | #2
Hi, Paolo!

On 2023/2/2 下午6:59, Juan Quintela wrote:
> Chuang Xu <xuchuangxclwt@bytedance.com> wrote:
>> add rcu_read_is_locked() to detect holding of rcu lock.
>>
>> Signed-off-by: Chuang Xu <xuchuangxclwt@bytedance.com>
> Reviewed-by: Juan Quintela <quintela@redhat.com>
>
> Althought I think that petting a review from Paolo or anyone that knows
> more than RCU could be a good idea.
>
>> ---
>>   include/qemu/rcu.h | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h
>> index b063c6fde8..719916d9d3 100644
>> --- a/include/qemu/rcu.h
>> +++ b/include/qemu/rcu.h
>> @@ -119,6 +119,13 @@ static inline void rcu_read_unlock(void)
>>       }
>>   }
>>   
>> +static inline bool rcu_read_is_locked(void)
>> +{
>> +    struct rcu_reader_data *p_rcu_reader = get_ptr_rcu_reader();
>> +
>> +    return p_rcu_reader->depth > 0;
>> +}
>> +
>>   extern void synchronize_rcu(void);
>>   
>>   /*

Do you have any more suggestions about patch1?

Looking forward to your reply.

Thanks!
diff mbox series

Patch

diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h
index b063c6fde8..719916d9d3 100644
--- a/include/qemu/rcu.h
+++ b/include/qemu/rcu.h
@@ -119,6 +119,13 @@  static inline void rcu_read_unlock(void)
     }
 }
 
+static inline bool rcu_read_is_locked(void)
+{
+    struct rcu_reader_data *p_rcu_reader = get_ptr_rcu_reader();
+
+    return p_rcu_reader->depth > 0;
+}
+
 extern void synchronize_rcu(void);
 
 /*