2022-08-01 10:13:49

by Xu Qiang

[permalink] [raw]
Subject: [PATCH -next] panic: Add register_panic_notifier and unregister_panic_notifier

Add two methods to manipulate panic_notifier_list and export them.
Subsequently, panic_notifier_list is changed to static variable.

Signed-off-by: Xu Qiang <[email protected]>
---
include/linux/panic_notifier.h | 3 +++
kernel/panic.c | 12 ++++++++++++
2 files changed, 15 insertions(+)

diff --git a/include/linux/panic_notifier.h b/include/linux/panic_notifier.h
index 41e32483d7a7..9543d498b90b 100644
--- a/include/linux/panic_notifier.h
+++ b/include/linux/panic_notifier.h
@@ -5,6 +5,9 @@
#include <linux/notifier.h>
#include <linux/types.h>

+int register_panic_notifier(struct notifier_block *nb);
+int unregister_panic_notifier(struct notifier_block *nb);
+
extern struct atomic_notifier_head panic_notifier_list;

extern bool crash_kexec_post_notifiers;
diff --git a/kernel/panic.c b/kernel/panic.c
index c6eb8f8db0c0..b848ec4ca6e2 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -199,6 +199,18 @@ static void panic_print_sys_info(bool console_flush)
ftrace_dump(DUMP_ALL);
}

+int register_panic_notifier(struct notifier_block *nb)
+{
+ return atomic_notifier_chain_register(&panic_notifier_list, nb);
+}
+EXPORT_SYMBOL(register_panic_notifier);
+
+int unregister_panic_notifier(struct notifier_block *nb)
+{
+ return atomic_notifier_chain_unregister(&panic_notifier_list, nb);
+}
+EXPORT_SYMBOL(unregister_panic_notifier);
+
/**
* panic - halt the system
* @fmt: The text string to print
--
2.17.1



2022-08-01 12:55:11

by Guilherme G. Piccoli

[permalink] [raw]
Subject: Re: [PATCH -next] panic: Add register_panic_notifier and unregister_panic_notifier

On 01/08/2022 07:05, Xu Qiang wrote:
> Add two methods to manipulate panic_notifier_list and export them.
> Subsequently, panic_notifier_list is changed to static variable.
>
> Signed-off-by: Xu Qiang <[email protected]>

Hi Xu Qiang, first of all, thanks for your patch!
I'd like to mention 2 things about it:

(a) As-is, there's no much use for it - I mean, you're adding a helper
but you didn't change the uses of such notifier list addition (and there
are plenty of them). Are you intend to change it, or just use the new
API in new calls?

(b) Even more important: we are working in a panic notifier refactor
[0], and that'll add new lists. I'm still working on that, plan to
submit (relatively) soon. Maybe worth to wait it, if this one is not urgent?

Cheers,


Guilherme


[0]
https://lore.kernel.org/lkml/[email protected]/

2022-08-01 14:04:01

by Xu Qiang

[permalink] [raw]
Subject: Re: [PATCH -next] panic: Add register_panic_notifier and unregister_panic_notifier

$B:_(B 2022/8/1 20:12, Guilherme G. Piccoli $B<LF;(B:
> On 01/08/2022 07:05, Xu Qiang wrote:
>> Add two methods to manipulate panic_notifier_list and export them.
>> Subsequently, panic_notifier_list is changed to static variable.
>>
>> Signed-off-by: Xu Qiang <[email protected]>
> Hi Xu Qiang, first of all, thanks for your patch!
> I'd like to mention 2 things about it:
>
> (a) As-is, there's no much use for it - I mean, you're adding a helper
> but you didn't change the uses of such notifier list addition (and there
> are plenty of them). Are you intend to change it, or just use the new
> API in new calls?
After this patch comes in, I will replace all the old interfaces with
the new ones.
>
> (b) Even more important: we are working in a panic notifier refactor
> [0], and that'll add new lists. I'm still working on that, plan to
> submit (relatively) soon. Maybe worth to wait it, if this one is not urgent?
I can wait for your patch to be incorporated before submitting it.
>
> Cheers,
>
>
> Guilherme
>
>
> [0]
> https://lore.kernel.org/lkml/[email protected]/
>
Thanks

Xu



2022-08-01 14:52:19

by Guilherme G. Piccoli

[permalink] [raw]
Subject: Re: [PATCH -next] panic: Add register_panic_notifier and unregister_panic_notifier

On 01/08/2022 10:58, xuqiang (M) wrote:
> 在 2022/8/1 20:12, Guilherme G. Piccoli 写道:
>> On 01/08/2022 07:05, Xu Qiang wrote:
>>> Add two methods to manipulate panic_notifier_list and export them.
>>> Subsequently, panic_notifier_list is changed to static variable.
>>>
>>> Signed-off-by: Xu Qiang <[email protected]>
>> Hi Xu Qiang, first of all, thanks for your patch!
>> I'd like to mention 2 things about it:
>>
>> (a) As-is, there's no much use for it - I mean, you're adding a helper
>> but you didn't change the uses of such notifier list addition (and there
>> are plenty of them). Are you intend to change it, or just use the new
>> API in new calls?
> After this patch comes in, I will replace all the old interfaces with
> the new ones.
>>
>> (b) Even more important: we are working in a panic notifier refactor
>> [0], and that'll add new lists. I'm still working on that, plan to
>> submit (relatively) soon. Maybe worth to wait it, if this one is not urgent?
> I can wait for your patch to be incorporated before submitting it.

Great, thanks Xu! I'll include you in the CC list of the V2 =)