[PATCH -next,V2] fscache: support to disable assert macro

WoZ1zh1 posted 1 patch 2 years, 1 month ago
fs/fscache/Kconfig    | 10 ++++++++++
fs/fscache/internal.h |  2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
[PATCH -next,V2] fscache: support to disable assert macro
Posted by WoZ1zh1 2 years, 1 month ago
In fs/fscache/internal.h, ASSERT macro is enabled by default and can not
be disabled, then assert failure will crash the kernel as the BUG() is
included in the ASSERT macro. Therefore, add FSCACHE_ASSERT to control it.

Signed-off-by: WoZ1zh1 <wozizhi@huawei.com>
---
 fs/fscache/Kconfig    | 10 ++++++++++
 fs/fscache/internal.h |  2 +-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/fs/fscache/Kconfig b/fs/fscache/Kconfig
index b313a978ae0a..7ff844038bc3 100644
--- a/fs/fscache/Kconfig
+++ b/fs/fscache/Kconfig
@@ -38,3 +38,13 @@ config FSCACHE_DEBUG
 	  enabled by setting bits in /sys/modules/fscache/parameter/debug.
 
 	  See Documentation/filesystems/caching/fscache.rst for more information.
+
+config FSCACHE_ASSERT
+	bool "FSCACHE asserts"
+	default n
+	depends on FSCACHE
+	help
+	  Support the ASSERT mode for failure behavior.
+	  Say N here to disable the ASSERT by default.
+	  Say Y to add assertion checks in some places. But the assertion
+	  failure will result in fatal errors that BUG() the kernel.
diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
index 1336f517e9b1..951166ed772f 100644
--- a/fs/fscache/internal.h
+++ b/fs/fscache/internal.h
@@ -225,7 +225,7 @@ do {						\
 /*
  * assertions
  */
-#if 1 /* defined(__KDEBUGALL) */
+#ifdef CONFIG_FSCACHE_ASSERT
 
 #define ASSERT(X)							\
 do {									\
-- 
2.39.2
Re: [PATCH -next,V2] fscache: support to disable assert macro
Posted by Zizhi Wo 2 years, 1 month ago
friendly ping

在 2023/11/2 0:34, WoZ1zh1 写道:
> In fs/fscache/internal.h, ASSERT macro is enabled by default and can not
> be disabled, then assert failure will crash the kernel as the BUG() is
> included in the ASSERT macro. Therefore, add FSCACHE_ASSERT to control it.
>
> Signed-off-by: WoZ1zh1 <wozizhi@huawei.com>
> ---
>   fs/fscache/Kconfig    | 10 ++++++++++
>   fs/fscache/internal.h |  2 +-
>   2 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/fs/fscache/Kconfig b/fs/fscache/Kconfig
> index b313a978ae0a..7ff844038bc3 100644
> --- a/fs/fscache/Kconfig
> +++ b/fs/fscache/Kconfig
> @@ -38,3 +38,13 @@ config FSCACHE_DEBUG
>   	  enabled by setting bits in /sys/modules/fscache/parameter/debug.
>   
>   	  See Documentation/filesystems/caching/fscache.rst for more information.
> +
> +config FSCACHE_ASSERT
> +	bool "FSCACHE asserts"
> +	default n
> +	depends on FSCACHE
> +	help
> +	  Support the ASSERT mode for failure behavior.
> +	  Say N here to disable the ASSERT by default.
> +	  Say Y to add assertion checks in some places. But the assertion
> +	  failure will result in fatal errors that BUG() the kernel.
> diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
> index 1336f517e9b1..951166ed772f 100644
> --- a/fs/fscache/internal.h
> +++ b/fs/fscache/internal.h
> @@ -225,7 +225,7 @@ do {						\
>   /*
>    * assertions
>    */
> -#if 1 /* defined(__KDEBUGALL) */
> +#ifdef CONFIG_FSCACHE_ASSERT
>   
>   #define ASSERT(X)							\
>   do {									\
Re: [PATCH -next,V2] fscache: support to disable assert macro
Posted by Gao Xiang 2 years, 1 month ago

On 2023/11/7 18:16, Zizhi Wo wrote:
> friendly ping
> 
> 在 2023/11/2 0:34, WoZ1zh1 写道:
>> In fs/fscache/internal.h, ASSERT macro is enabled by default and can not
>> be disabled, then assert failure will crash the kernel as the BUG() is
>> included in the ASSERT macro. Therefore, add FSCACHE_ASSERT to control it.

Personally it looks good to me, yet we could also turn
them into WARN_ON_ONCE case by case? Anyway, it depends
on how David thinks...

Thanks,
Gao Xiang

>>
>> Signed-off-by: WoZ1zh1 <wozizhi@huawei.com>
>> ---
>>   fs/fscache/Kconfig    | 10 ++++++++++
>>   fs/fscache/internal.h |  2 +-
>>   2 files changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/fs/fscache/Kconfig b/fs/fscache/Kconfig
>> index b313a978ae0a..7ff844038bc3 100644
>> --- a/fs/fscache/Kconfig
>> +++ b/fs/fscache/Kconfig
>> @@ -38,3 +38,13 @@ config FSCACHE_DEBUG
>>         enabled by setting bits in /sys/modules/fscache/parameter/debug.
>>         See Documentation/filesystems/caching/fscache.rst for more information.
>> +
>> +config FSCACHE_ASSERT
>> +    bool "FSCACHE asserts"
>> +    default n
>> +    depends on FSCACHE
>> +    help
>> +      Support the ASSERT mode for failure behavior.
>> +      Say N here to disable the ASSERT by default.
>> +      Say Y to add assertion checks in some places. But the assertion
>> +      failure will result in fatal errors that BUG() the kernel.
>> diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
>> index 1336f517e9b1..951166ed772f 100644
>> --- a/fs/fscache/internal.h
>> +++ b/fs/fscache/internal.h
>> @@ -225,7 +225,7 @@ do {                        \
>>   /*
>>    * assertions
>>    */
>> -#if 1 /* defined(__KDEBUGALL) */
>> +#ifdef CONFIG_FSCACHE_ASSERT
>>   #define ASSERT(X)                            \
>>   do {                                    \
Re: [PATCH -next,V2] fscache: support to disable assert macro
Posted by Zizhi Wo 2 years, 1 month ago

在 2023/11/7 20:39, Gao Xiang 写道:
> 
> 
> On 2023/11/7 18:16, Zizhi Wo wrote:
>> friendly ping
>>
>> 在 2023/11/2 0:34, WoZ1zh1 写道:
>>> In fs/fscache/internal.h, ASSERT macro is enabled by default and can not
>>> be disabled, then assert failure will crash the kernel as the BUG() is
>>> included in the ASSERT macro. Therefore, add FSCACHE_ASSERT to 
>>> control it.
> 
> Personally it looks good to me, yet we could also turn
> them into WARN_ON_ONCE case by case? Anyway, it depends
> on how David thinks...
>
Thank you for your recognition!

Thanks,
Zizhi Wo

> Thanks,
> Gao Xiang
> 
>>>
>>> Signed-off-by: WoZ1zh1 <wozizhi@huawei.com>
>>> ---
>>>   fs/fscache/Kconfig    | 10 ++++++++++
>>>   fs/fscache/internal.h |  2 +-
>>>   2 files changed, 11 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/fs/fscache/Kconfig b/fs/fscache/Kconfig
>>> index b313a978ae0a..7ff844038bc3 100644
>>> --- a/fs/fscache/Kconfig
>>> +++ b/fs/fscache/Kconfig
>>> @@ -38,3 +38,13 @@ config FSCACHE_DEBUG
>>>         enabled by setting bits in /sys/modules/fscache/parameter/debug.
>>>         See Documentation/filesystems/caching/fscache.rst for more 
>>> information.
>>> +
>>> +config FSCACHE_ASSERT
>>> +    bool "FSCACHE asserts"
>>> +    default n
>>> +    depends on FSCACHE
>>> +    help
>>> +      Support the ASSERT mode for failure behavior.
>>> +      Say N here to disable the ASSERT by default.
>>> +      Say Y to add assertion checks in some places. But the assertion
>>> +      failure will result in fatal errors that BUG() the kernel.
>>> diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
>>> index 1336f517e9b1..951166ed772f 100644
>>> --- a/fs/fscache/internal.h
>>> +++ b/fs/fscache/internal.h
>>> @@ -225,7 +225,7 @@ do {                        \
>>>   /*
>>>    * assertions
>>>    */
>>> -#if 1 /* defined(__KDEBUGALL) */
>>> +#ifdef CONFIG_FSCACHE_ASSERT
>>>   #define ASSERT(X)                            \
>>>   do {                                    \
> 
Re: [PATCH -next,V2] fscache: support to disable assert macro
Posted by Zizhi Wo 2 years, 1 month ago
friendly ping

在 2023/11/8 10:25, Zizhi Wo 写道:
> 
> 
> 在 2023/11/7 20:39, Gao Xiang 写道:
>>
>>
>> On 2023/11/7 18:16, Zizhi Wo wrote:
>>> friendly ping
>>>
>>> 在 2023/11/2 0:34, WoZ1zh1 写道:
>>>> In fs/fscache/internal.h, ASSERT macro is enabled by default and can 
>>>> not
>>>> be disabled, then assert failure will crash the kernel as the BUG() is
>>>> included in the ASSERT macro. Therefore, add FSCACHE_ASSERT to 
>>>> control it.
>>
>> Personally it looks good to me, yet we could also turn
>> them into WARN_ON_ONCE case by case? Anyway, it depends
>> on how David thinks...
>>
> Thank you for your recognition!
> 
> Thanks,
> Zizhi Wo
> 
>> Thanks,
>> Gao Xiang
>>
>>>>
>>>> Signed-off-by: WoZ1zh1 <wozizhi@huawei.com>
>>>> ---
>>>>   fs/fscache/Kconfig    | 10 ++++++++++
>>>>   fs/fscache/internal.h |  2 +-
>>>>   2 files changed, 11 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/fs/fscache/Kconfig b/fs/fscache/Kconfig
>>>> index b313a978ae0a..7ff844038bc3 100644
>>>> --- a/fs/fscache/Kconfig
>>>> +++ b/fs/fscache/Kconfig
>>>> @@ -38,3 +38,13 @@ config FSCACHE_DEBUG
>>>>         enabled by setting bits in 
>>>> /sys/modules/fscache/parameter/debug.
>>>>         See Documentation/filesystems/caching/fscache.rst for more 
>>>> information.
>>>> +
>>>> +config FSCACHE_ASSERT
>>>> +    bool "FSCACHE asserts"
>>>> +    default n
>>>> +    depends on FSCACHE
>>>> +    help
>>>> +      Support the ASSERT mode for failure behavior.
>>>> +      Say N here to disable the ASSERT by default.
>>>> +      Say Y to add assertion checks in some places. But the assertion
>>>> +      failure will result in fatal errors that BUG() the kernel.
>>>> diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
>>>> index 1336f517e9b1..951166ed772f 100644
>>>> --- a/fs/fscache/internal.h
>>>> +++ b/fs/fscache/internal.h
>>>> @@ -225,7 +225,7 @@ do {                        \
>>>>   /*
>>>>    * assertions
>>>>    */
>>>> -#if 1 /* defined(__KDEBUGALL) */
>>>> +#ifdef CONFIG_FSCACHE_ASSERT
>>>>   #define ASSERT(X)                            \
>>>>   do {                                    \
>>
Re: [PATCH -next,V2] fscache: support to disable assert macro
Posted by Zizhi Wo 1 year, 11 months ago
friendly ping

在 2023/11/30 10:50, Zizhi Wo 写道:
> friendly ping
> 
> 在 2023/11/8 10:25, Zizhi Wo 写道:
>>
>>
>> 在 2023/11/7 20:39, Gao Xiang 写道:
>>>
>>>
>>> On 2023/11/7 18:16, Zizhi Wo wrote:
>>>> friendly ping
>>>>
>>>> 在 2023/11/2 0:34, WoZ1zh1 写道:
>>>>> In fs/fscache/internal.h, ASSERT macro is enabled by default and 
>>>>> can not
>>>>> be disabled, then assert failure will crash the kernel as the BUG() is
>>>>> included in the ASSERT macro. Therefore, add FSCACHE_ASSERT to 
>>>>> control it.
>>>
>>> Personally it looks good to me, yet we could also turn
>>> them into WARN_ON_ONCE case by case? Anyway, it depends
>>> on how David thinks...
>>>
>> Thank you for your recognition!
>>
>> Thanks,
>> Zizhi Wo
>>
>>> Thanks,
>>> Gao Xiang
>>>
>>>>>
>>>>> Signed-off-by: WoZ1zh1 <wozizhi@huawei.com>
>>>>> ---
>>>>>   fs/fscache/Kconfig    | 10 ++++++++++
>>>>>   fs/fscache/internal.h |  2 +-
>>>>>   2 files changed, 11 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/fs/fscache/Kconfig b/fs/fscache/Kconfig
>>>>> index b313a978ae0a..7ff844038bc3 100644
>>>>> --- a/fs/fscache/Kconfig
>>>>> +++ b/fs/fscache/Kconfig
>>>>> @@ -38,3 +38,13 @@ config FSCACHE_DEBUG
>>>>>         enabled by setting bits in 
>>>>> /sys/modules/fscache/parameter/debug.
>>>>>         See Documentation/filesystems/caching/fscache.rst for more 
>>>>> information.
>>>>> +
>>>>> +config FSCACHE_ASSERT
>>>>> +    bool "FSCACHE asserts"
>>>>> +    default n
>>>>> +    depends on FSCACHE
>>>>> +    help
>>>>> +      Support the ASSERT mode for failure behavior.
>>>>> +      Say N here to disable the ASSERT by default.
>>>>> +      Say Y to add assertion checks in some places. But the assertion
>>>>> +      failure will result in fatal errors that BUG() the kernel.
>>>>> diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
>>>>> index 1336f517e9b1..951166ed772f 100644
>>>>> --- a/fs/fscache/internal.h
>>>>> +++ b/fs/fscache/internal.h
>>>>> @@ -225,7 +225,7 @@ do {                        \
>>>>>   /*
>>>>>    * assertions
>>>>>    */
>>>>> -#if 1 /* defined(__KDEBUGALL) */
>>>>> +#ifdef CONFIG_FSCACHE_ASSERT
>>>>>   #define ASSERT(X)                            \
>>>>>   do {                                    \
>>>