All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
To: bhe@redhat.com, d.hatayama@jp.fujitsu.com,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Mark Rutland <mark.rutland@arm.com>,
	mikelley@microsoft.com, pmladek@suse.com, vkuznets@redhat.com
Cc: akpm@linux-foundation.org, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com,
	linuxppc-dev@lists.ozlabs.org, linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org, sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org, x86@kernel.org,
	kernel-dev@igalia.com, kernel@gpiccoli.net, halves@canonical.com,
	fabiomirmar@gmail.com, alejandro.j.jimenez@oracle.com,
	andriy.shevchenko@linux.intel.com, arnd@arndb.de, bp@alien8.de,
	corbet@lwn.net, dave.hansen@linux.intel.com, dyoung@redhat.com,
	feng.tang@intel.com, gregkh@linuxfoundation.org,
	hidehiro.kawai.ez@hitachi.com, jgross@suse.com,
	john.ogness@linutronix.de, keescook@chromium.org,
	luto@kernel.org, mhiramat@kernel.org, mingo@redhat.com,
	paulmck@kernel.org, peterz@infradead.org, rostedt@goodmis.org,
	senozhatsky@chromium.org, stern@rowland.harvard.edu,
	tglx@linutronix.de, vgoyal@redhat.com, will@kernel.org
Subject: Re: [PATCH 24/30] panic: Refactor the panic path
Date: Thu, 26 May 2022 13:25:57 -0300	[thread overview]
Message-ID: <0d084eed-4781-c815-29c7-ac62c498e216@igalia.com> (raw)
In-Reply-To: <87fskzuh11.fsf@email.froward.int.ebiederm.org>

Hey folks, first of all thanks a lot for the reviews / opinions about
this. I imagined that such change would be polemic, and I see I was
right heh


I'll try to "mix" all the relevant opinions in a single email, since
they happened in different responses and even different mail threads.

I've looped here the most interested parties based on the feedback
received, such as Baoquan (kdump), Hatayama (kdump), Eric (kexec), Mark
(arm64), Michael (Hyper-V), Petr (console/printk) and Vitaly (hyper-v /
kvm). I hope we can discuss and try to reach some consensus - my
apologies in advance for this long message!

So, here goes some feedback we received about this change and correlated
feedback from arm64 community - my apologies if I missed something
important, I've tried to collect the most relevant portions, while
keeping the summary "as short" as possible. I'll respond to such
feedback below, after the quotes.


On 24/05/2022 05:32, Baoquan He wrote:
>> [...] 
>> Firstly, kdump is not always the first thing. In any use case, if kdump
>> kernel is not loaded, it's not the first thing at all. Not to mention
>> if crash_kexec_post_notifiers is specified.
>> [...]
>> Changing this will cause regression. During these years, nobody ever doubt
>> kdump should execute firstly if crashkernel is reserved and kdump kernel is
>> loaded. That's not saying we can't change
>> this, but need a convincing justification.
>> [...] 
>> Secondly, even with the notifiers' split, we can't guarantee people will
>> absolutely add notifiers into right list in the future. Letting kdump
>> execute behind lists by default will put kdump into risk.
>> [...] 
>> As for Hyper-V, if it enforces to terminate VMbus connection, no matter
>> it's kdump or not, why not taking it out of panic notifiers list and
>> execute it before kdump unconditionally.


On 24/05/2022 05:01, Petr Mladek wrote:
>> [...]
>> Anyway, I see four possible solutions:
>> 
>>   1. The most conservative approach is to keep the current behavior
>>      and call kdump first by default.
>> 
>>   2. A medium conservative approach to change the default default
>>      behavior and call hypervisor and eventually the info notifiers
>>      before kdump. There still would be the possibility to call kdump
>>      first by the command line parameter.
>> 
>>   3. Remove the possibility to call kdump first completely. It would
>>      assume that all the notifiers in the info list are super safe
>>      or that they make kdump actually more safe.
>> 
>>   4. Create one more notifier list for operations that always should
>>      be called before crash_dump.
>> 
>> Regarding the extra notifier list (4th solution). It is not clear to
>> me whether it would be always called even before hypervisor list or
>> when kdump is not enabled. We must not over-engineer it.
>> 
>> 2nd proposal looks like a good compromise. But maybe we could do
>> this change few releases later. The notifiers split is a big
>> change on its own.


On 24/05/2022 07:18, Baoquan He wrote:
>>[...]
>> I would vote for 1 or 4 without any hesitation, and prefer 4. I ever
>> suggest the variant of solution 4 in v1 reviewing. That's taking those
>> notifiers out of list and enforcing to execute them before kdump. E.g
>> the one on HyperV to terminate VMbus connection. Maybe solution 4 is
>> better to provide a determinate way for people to add necessary code
>> at the earliest part.
>> [...] 
>>>
>>> Regarding the extra notifier list (4th solution). It is not clear to
>>> me whether it would be always called even before hypervisor list or
>>> when kdump is not enabled. We must not over-engineer it.
>> 
>> One thing I would like to notice is, no matter how perfect we split the
>> lists this time, we can't gurantee people will add notifiers reasonablly
>> in the future. And people from different sub-component may not do
>> sufficient investigation and add them to fulfil their local purpose.
>> 
>> The current panic notifers list is the best example. Hyper-V actually
>> wants to run some necessary code before kdump, but not all of them, they
>> just add it, ignoring the original purpose of
>> crash_kexec_post_notifiers. I guess they do like this just because it's
>> easy to do, no need to bother changing code in generic place.
>> 
>> Solution 4 can make this no doubt, that's why I like it better.
>> [...] 
>> As I replied to Guilherme, solution 2 will cause regression if not
>> calling kdump firstly. Solution 3 leaves people space to make mistake,
>> they could add nontifier into wrong list.
>> 
>> I would like to note again that the panic notifiers are optional to run,
>> while kdump is expectd once loaded, from the original purpose. I guess
>> people I know will still have this thought, e.g Hatayama, Masa, they are
>> truly often use panic notifiers like this on their company's system.


On 24/05/2022 11:44, Eric W. Biederman wrote:
> [...]
> Unfortunately I am also very grouchy.
> 
> Notifiers before kexec on panic are fundamentally broken.  So please
> just remove crash_kexec_post notifiers and be done with it.  Part of the
> deep issue is that firmware always has a common and broken
> implementation for anything that is not mission critical to
> motherboards.
> 
> Notifiers in any sense on these paths are just bollocks.  Any kind of
> notifier list is fundamentally fragile in the face of memory corruption
> and very very difficult to review.
> 
> So I am going to refresh my ancient NACK on this.
> 
> I can certainly appreciate that there are pieces of the reboot paths
> that can be improved.  I don't think making anything more feature full
> or flexible is any kind of real improvement.


Now, from the thread "Should arm64 have a custom crash shutdown
handler?" (link:
https://lore.kernel.org/lkml/427a8277-49f0-4317-d6c3-4a15d7070e55@igalia.com/),
we have:

On 05/05/2022 08:10, Mark Rutland wrote:
>> On Wed, May 04, 2022 at 05:00:42PM -0300, Guilherme G. Piccoli wrote:
>>> [...]
>>> Currently, when we kexec in arm64, the function machine_crash_shutdown()
>>> is called as a handler to disable CPUs and (potentially) do extra
>>> quiesce work. In the aforementioned architectures, there's a way to
>>> override this function, if for example an hypervisor wish to have its
>>> guests running their own custom shutdown machinery.
>> 
>> What exactly do you need to do in this custom shutdown machinery?
>> 
>> The general expectation for arm64 is that any hypervisor can implement PSCI,
>> and as long as you have that, CPUs (and the VM as a whole) can be shutdown in a
>> standard way.
>> 
>> I suspect what you're actually after is a mechanism to notify the hypervisor
>> when the guest crashes, rather than changing the way the shutdown itself
>> occurs? If so, we already have panic notifiers, and QEMU has a "pvpanic"
>> device using that. See drivers/misc/pvpanic/.


OK, so it seems we have some points in which agreement exists, and some
points that there is no agreement and instead, we have antagonistic /
opposite views and needs. Let's start with the easier part heh


It seems everybody agrees that *we shouldn't over-engineer things*, and
as per Eric good words: making the panic path more feature-full or
increasing flexibility isn't a good idea. So, as a "corollary": the
panic level approach I'm proposing is not a good fit, I'll drop it and
let's go with something simpler.

Another point of agreement seems to be that _notifier lists in the panic
path are dangerous_, for *2 different reasons*:

(a) We cannot guarantee that people won't add crazy callbacks there, we
can plan and document things the best as possible - it'll never be
enough, somebody eventually would slip a nonsense callback that would
break things and defeat the planned purpose of such a list;

(b) As per Eric point, in a panic/crash situation we might have memory
corruption exactly in the list code / pointers, etc, so the notifier
lists are, by nature, a bit fragile. But I think we shouldn't consider
it completely "bollocks", since this approach has been used for a while
with a good success rate. So, lists aren't perfect at all, but at the
same time, they aren't completely useless.


Now, to the points in which there are conflicting / antagonistic
needs/views:

(I) Kdump should be the first thing to run, as it's been like that since
forever. But...notice that "crash_kexec_post_notifiers" was created
exactly as a way to circumvent that, so we can see this is not an
absolute truth. Some users really *require to execute* some special code
*before kdump*.
Worth noticing here that regular kexec invokes the drivers .shutdown()
handlers, while kdump [aka crash_kexec()] does not, so we must have a
way to run code before kdump in a crash situation.

(II) If *we need* to have some code always running before kdump/reboot
on panic path (like the Hyper-V vmbus connection unload), *where to add
such code*? Again, conflicting views. Some would say we should hardcode
this in the panic() function. Others, that we should use the custom
machine_crash_shutdown() infrastructure - but notice that this isn't
available in all architectures, like arm64. Finally, others suggest
to...use notifier lists! Which was more or less the approach we took in
this patch.

How can we reach consensus on this? Not everybody will be 100% happy,
that's for sure. Also, I'd risk to say keep things as-is now or even
getting rid of "crash_kexec_post_notifiers" won't work at all, we have
users with legitimate needs of running code before a kdump/reboot when
crash happens. The *main goal* should be to have a *simple solution*
that doesn't require users to abuse parameters, like it's been done with
"crash_kexec_post_notifiers" (Hyper-V and PowerPC currently force this
parameter to be enabled, for example).


To avoid using a 4th list, especially given the list nature is a bit
fragile, I'd suggest one of the 3 following approaches - I *really
appreciate feedbacks* on that so I can implement the best solution and
avoid wasting time in some poor/disliked solution:

(1) We could have a helper function in the "beginning" of panic path,
i.e., after the logic to disable preemption/IRQs/secondary CPUs, but
*before* kdump. Then, users like Hyper-V that require to execute stuff
regardless of kdump or not, would run their callbacks from there,
directly, no lists involved.

- pros: simple, doesn't mess with arch code or involve lists.
- cons: header issues - will need to "export" such function from driver
code, for example, to run in core code. Also, some code might only be
required to run in some architectures, or only if kdump is set, etc.,
making the callbacks more complex / full of if conditionals.


(2) Similarly to previous solution, we could have a helper in the kexec
core code, not in the panic path. This way, users that require running
stuff *before a kdump* would add direct calls there; if kdump isn't
configured, and if such users also require that this code execute in
panic nevertheless, they'd need to also add a callback to some notifier
list.

- pros: also simple / doesn't mess with arch code or involve lists;
restricts the callbacks to kdump case.
- cons: also header issues, but might cause code duplicity too, since
some users would require both to run their code before a kdump and in
some panic notifier list.


(3) Have a way in arm64 (and all archs maybe) to run code before a kdump
- this is analog to the custom machine_crash_shutdown() we have nowadays
in some archs.

- pros: decouple kdump-required callbacks from panic notifiers, doesn't
involve lists, friendly to arch-dependent callbacks.
- cons: also header issues, might cause code duplicity (since some users
would also require to run their code in panic path regardless of kdump)
and involve changing arch code (some maintainers like Mark aren't fond
about that, with good reasons!).


So, hopefully we can converge to some direction even if not 100% of
users are happy - this problem is naturally full of trade-offs.
Thanks again for the reviews and the time you're spending reading these
long threads.

Cheers,


Guilherme

WARNING: multiple messages have this Message-ID (diff)
From: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
To: bhe@redhat.com, d.hatayama@jp.fujitsu.com,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Mark Rutland <mark.rutland@arm.com>,
	mikelley@microsoft.com, pmladek@suse.com, vkuznets@redhat.com
Cc: linux-hyperv@vger.kernel.org, halves@canonical.com,
	gregkh@linuxfoundation.org, peterz@infradead.org,
	alejandro.j.jimenez@oracle.com, linux-remoteproc@vger.kernel.org,
	feng.tang@intel.com, linux-mips@vger.kernel.org,
	hidehiro.kawai.ez@hitachi.com, sparclinux@vger.kernel.org,
	will@kernel.org, tglx@linutronix.de, linux-leds@vger.kernel.org,
	linux-s390@vger.kernel.org, john.ogness@linutronix.de,
	corbet@lwn.net, paulmck@kernel.org, fabiomirmar@gmail.com,
	x86@kernel.org, mingo@redhat.com,
	bcm-kernel-feedback-list@broadcom.com,
	xen-devel@lists.xenproject.org, dyoung@redhat.com,
	vgoyal@redhat.com, linux-xtensa@linux-xtensa.org,
	dave.hansen@linux.intel.com, keescook@chromium.org,
	arnd@arndb.de, linux-pm@vger.kernel.org,
	linux-um@lists.infradead.org, rostedt@goodmis.org,
	rcu@vger.kernel.org, bp@alien8.de, luto@kernel.org,
	linux-tegra@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net,
	andriy.shevchenko@linux.intel.com,
	linux-arm-kernel@lists.infradead.org,
	linux-edac@vger.kernel.or g, jgross@suse.com,
	linux-parisc@vger.kernel.org, netdev@vger.kernel.org,
	kernel@gpiccoli.net, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, stern@rowland.harvard.edu,
	senozhatsky@chromium.org, mhiramat@kernel.org,
	kernel-dev@igalia.com, linux-alpha@vger.kernel.org,
	akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 24/30] panic: Refactor the panic path
Date: Thu, 26 May 2022 13:25:57 -0300	[thread overview]
Message-ID: <0d084eed-4781-c815-29c7-ac62c498e216@igalia.com> (raw)
In-Reply-To: <87fskzuh11.fsf@email.froward.int.ebiederm.org>

Hey folks, first of all thanks a lot for the reviews / opinions about
this. I imagined that such change would be polemic, and I see I was
right heh


I'll try to "mix" all the relevant opinions in a single email, since
they happened in different responses and even different mail threads.

I've looped here the most interested parties based on the feedback
received, such as Baoquan (kdump), Hatayama (kdump), Eric (kexec), Mark
(arm64), Michael (Hyper-V), Petr (console/printk) and Vitaly (hyper-v /
kvm). I hope we can discuss and try to reach some consensus - my
apologies in advance for this long message!

So, here goes some feedback we received about this change and correlated
feedback from arm64 community - my apologies if I missed something
important, I've tried to collect the most relevant portions, while
keeping the summary "as short" as possible. I'll respond to such
feedback below, after the quotes.


On 24/05/2022 05:32, Baoquan He wrote:
>> [...] 
>> Firstly, kdump is not always the first thing. In any use case, if kdump
>> kernel is not loaded, it's not the first thing at all. Not to mention
>> if crash_kexec_post_notifiers is specified.
>> [...]
>> Changing this will cause regression. During these years, nobody ever doubt
>> kdump should execute firstly if crashkernel is reserved and kdump kernel is
>> loaded. That's not saying we can't change
>> this, but need a convincing justification.
>> [...] 
>> Secondly, even with the notifiers' split, we can't guarantee people will
>> absolutely add notifiers into right list in the future. Letting kdump
>> execute behind lists by default will put kdump into risk.
>> [...] 
>> As for Hyper-V, if it enforces to terminate VMbus connection, no matter
>> it's kdump or not, why not taking it out of panic notifiers list and
>> execute it before kdump unconditionally.


On 24/05/2022 05:01, Petr Mladek wrote:
>> [...]
>> Anyway, I see four possible solutions:
>> 
>>   1. The most conservative approach is to keep the current behavior
>>      and call kdump first by default.
>> 
>>   2. A medium conservative approach to change the default default
>>      behavior and call hypervisor and eventually the info notifiers
>>      before kdump. There still would be the possibility to call kdump
>>      first by the command line parameter.
>> 
>>   3. Remove the possibility to call kdump first completely. It would
>>      assume that all the notifiers in the info list are super safe
>>      or that they make kdump actually more safe.
>> 
>>   4. Create one more notifier list for operations that always should
>>      be called before crash_dump.
>> 
>> Regarding the extra notifier list (4th solution). It is not clear to
>> me whether it would be always called even before hypervisor list or
>> when kdump is not enabled. We must not over-engineer it.
>> 
>> 2nd proposal looks like a good compromise. But maybe we could do
>> this change few releases later. The notifiers split is a big
>> change on its own.


On 24/05/2022 07:18, Baoquan He wrote:
>>[...]
>> I would vote for 1 or 4 without any hesitation, and prefer 4. I ever
>> suggest the variant of solution 4 in v1 reviewing. That's taking those
>> notifiers out of list and enforcing to execute them before kdump. E.g
>> the one on HyperV to terminate VMbus connection. Maybe solution 4 is
>> better to provide a determinate way for people to add necessary code
>> at the earliest part.
>> [...] 
>>>
>>> Regarding the extra notifier list (4th solution). It is not clear to
>>> me whether it would be always called even before hypervisor list or
>>> when kdump is not enabled. We must not over-engineer it.
>> 
>> One thing I would like to notice is, no matter how perfect we split the
>> lists this time, we can't gurantee people will add notifiers reasonablly
>> in the future. And people from different sub-component may not do
>> sufficient investigation and add them to fulfil their local purpose.
>> 
>> The current panic notifers list is the best example. Hyper-V actually
>> wants to run some necessary code before kdump, but not all of them, they
>> just add it, ignoring the original purpose of
>> crash_kexec_post_notifiers. I guess they do like this just because it's
>> easy to do, no need to bother changing code in generic place.
>> 
>> Solution 4 can make this no doubt, that's why I like it better.
>> [...] 
>> As I replied to Guilherme, solution 2 will cause regression if not
>> calling kdump firstly. Solution 3 leaves people space to make mistake,
>> they could add nontifier into wrong list.
>> 
>> I would like to note again that the panic notifiers are optional to run,
>> while kdump is expectd once loaded, from the original purpose. I guess
>> people I know will still have this thought, e.g Hatayama, Masa, they are
>> truly often use panic notifiers like this on their company's system.


On 24/05/2022 11:44, Eric W. Biederman wrote:
> [...]
> Unfortunately I am also very grouchy.
> 
> Notifiers before kexec on panic are fundamentally broken.  So please
> just remove crash_kexec_post notifiers and be done with it.  Part of the
> deep issue is that firmware always has a common and broken
> implementation for anything that is not mission critical to
> motherboards.
> 
> Notifiers in any sense on these paths are just bollocks.  Any kind of
> notifier list is fundamentally fragile in the face of memory corruption
> and very very difficult to review.
> 
> So I am going to refresh my ancient NACK on this.
> 
> I can certainly appreciate that there are pieces of the reboot paths
> that can be improved.  I don't think making anything more feature full
> or flexible is any kind of real improvement.


Now, from the thread "Should arm64 have a custom crash shutdown
handler?" (link:
https://lore.kernel.org/lkml/427a8277-49f0-4317-d6c3-4a15d7070e55@igalia.com/),
we have:

On 05/05/2022 08:10, Mark Rutland wrote:
>> On Wed, May 04, 2022 at 05:00:42PM -0300, Guilherme G. Piccoli wrote:
>>> [...]
>>> Currently, when we kexec in arm64, the function machine_crash_shutdown()
>>> is called as a handler to disable CPUs and (potentially) do extra
>>> quiesce work. In the aforementioned architectures, there's a way to
>>> override this function, if for example an hypervisor wish to have its
>>> guests running their own custom shutdown machinery.
>> 
>> What exactly do you need to do in this custom shutdown machinery?
>> 
>> The general expectation for arm64 is that any hypervisor can implement PSCI,
>> and as long as you have that, CPUs (and the VM as a whole) can be shutdown in a
>> standard way.
>> 
>> I suspect what you're actually after is a mechanism to notify the hypervisor
>> when the guest crashes, rather than changing the way the shutdown itself
>> occurs? If so, we already have panic notifiers, and QEMU has a "pvpanic"
>> device using that. See drivers/misc/pvpanic/.


OK, so it seems we have some points in which agreement exists, and some
points that there is no agreement and instead, we have antagonistic /
opposite views and needs. Let's start with the easier part heh


It seems everybody agrees that *we shouldn't over-engineer things*, and
as per Eric good words: making the panic path more feature-full or
increasing flexibility isn't a good idea. So, as a "corollary": the
panic level approach I'm proposing is not a good fit, I'll drop it and
let's go with something simpler.

Another point of agreement seems to be that _notifier lists in the panic
path are dangerous_, for *2 different reasons*:

(a) We cannot guarantee that people won't add crazy callbacks there, we
can plan and document things the best as possible - it'll never be
enough, somebody eventually would slip a nonsense callback that would
break things and defeat the planned purpose of such a list;

(b) As per Eric point, in a panic/crash situation we might have memory
corruption exactly in the list code / pointers, etc, so the notifier
lists are, by nature, a bit fragile. But I think we shouldn't consider
it completely "bollocks", since this approach has been used for a while
with a good success rate. So, lists aren't perfect at all, but at the
same time, they aren't completely useless.


Now, to the points in which there are conflicting / antagonistic
needs/views:

(I) Kdump should be the first thing to run, as it's been like that since
forever. But...notice that "crash_kexec_post_notifiers" was created
exactly as a way to circumvent that, so we can see this is not an
absolute truth. Some users really *require to execute* some special code
*before kdump*.
Worth noticing here that regular kexec invokes the drivers .shutdown()
handlers, while kdump [aka crash_kexec()] does not, so we must have a
way to run code before kdump in a crash situation.

(II) If *we need* to have some code always running before kdump/reboot
on panic path (like the Hyper-V vmbus connection unload), *where to add
such code*? Again, conflicting views. Some would say we should hardcode
this in the panic() function. Others, that we should use the custom
machine_crash_shutdown() infrastructure - but notice that this isn't
available in all architectures, like arm64. Finally, others suggest
to...use notifier lists! Which was more or less the approach we took in
this patch.

How can we reach consensus on this? Not everybody will be 100% happy,
that's for sure. Also, I'd risk to say keep things as-is now or even
getting rid of "crash_kexec_post_notifiers" won't work at all, we have
users with legitimate needs of running code before a kdump/reboot when
crash happens. The *main goal* should be to have a *simple solution*
that doesn't require users to abuse parameters, like it's been done with
"crash_kexec_post_notifiers" (Hyper-V and PowerPC currently force this
parameter to be enabled, for example).


To avoid using a 4th list, especially given the list nature is a bit
fragile, I'd suggest one of the 3 following approaches - I *really
appreciate feedbacks* on that so I can implement the best solution and
avoid wasting time in some poor/disliked solution:

(1) We could have a helper function in the "beginning" of panic path,
i.e., after the logic to disable preemption/IRQs/secondary CPUs, but
*before* kdump. Then, users like Hyper-V that require to execute stuff
regardless of kdump or not, would run their callbacks from there,
directly, no lists involved.

- pros: simple, doesn't mess with arch code or involve lists.
- cons: header issues - will need to "export" such function from driver
code, for example, to run in core code. Also, some code might only be
required to run in some architectures, or only if kdump is set, etc.,
making the callbacks more complex / full of if conditionals.


(2) Similarly to previous solution, we could have a helper in the kexec
core code, not in the panic path. This way, users that require running
stuff *before a kdump* would add direct calls there; if kdump isn't
configured, and if such users also require that this code execute in
panic nevertheless, they'd need to also add a callback to some notifier
list.

- pros: also simple / doesn't mess with arch code or involve lists;
restricts the callbacks to kdump case.
- cons: also header issues, but might cause code duplicity too, since
some users would require both to run their code before a kdump and in
some panic notifier list.


(3) Have a way in arm64 (and all archs maybe) to run code before a kdump
- this is analog to the custom machine_crash_shutdown() we have nowadays
in some archs.

- pros: decouple kdump-required callbacks from panic notifiers, doesn't
involve lists, friendly to arch-dependent callbacks.
- cons: also header issues, might cause code duplicity (since some users
would also require to run their code in panic path regardless of kdump)
and involve changing arch code (some maintainers like Mark aren't fond
about that, with good reasons!).


So, hopefully we can converge to some direction even if not 100% of
users are happy - this problem is naturally full of trade-offs.
Thanks again for the reviews and the time you're spending reading these
long threads.

Cheers,


Guilherme

WARNING: multiple messages have this Message-ID (diff)
From: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
To: bhe@redhat.com, d.hatayama@jp.fujitsu.com,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Mark Rutland <mark.rutland@arm.com>,
	mikelley@microsoft.com, pmladek@suse.com, vkuznets@redhat.com
Cc: akpm@linux-foundation.org, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com,
	linuxppc-dev@lists.ozlabs.org, linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org, sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org, x86@kernel.org,
	kernel-dev@igalia.com, kernel@gpiccoli.net, halves@canonical.com,
	fabiomirmar@gmail.com, alejandro.j.jimenez@oracle.com,
	andriy.shevchenko@linux.intel.com, arnd@arndb.de, bp@alien8.de,
	corbet@lwn.net, dave.hansen@linux.intel.com, dyoung@redhat.com,
	feng.tang@intel.com, gregkh@linuxfoundation.org,
	hidehiro.kawai.ez@hitachi.com, jgross@suse.com,
	john.ogness@linutronix.de, keescook@chromium.org,
	luto@kernel.org, mhiramat@kernel.org, mingo@redhat.com,
	paulmck@kernel.org, peterz@infradead.org, rostedt@goodmis.org,
	senozhatsky@chromium.org, stern@rowland.harvard.edu,
	tglx@linutronix.de, vgoyal@redhat.com, will@kernel.org
Subject: Re: [PATCH 24/30] panic: Refactor the panic path
Date: Thu, 26 May 2022 13:25:57 -0300	[thread overview]
Message-ID: <0d084eed-4781-c815-29c7-ac62c498e216@igalia.com> (raw)
In-Reply-To: <87fskzuh11.fsf@email.froward.int.ebiederm.org>

Hey folks, first of all thanks a lot for the reviews / opinions about
this. I imagined that such change would be polemic, and I see I was
right heh


I'll try to "mix" all the relevant opinions in a single email, since
they happened in different responses and even different mail threads.

I've looped here the most interested parties based on the feedback
received, such as Baoquan (kdump), Hatayama (kdump), Eric (kexec), Mark
(arm64), Michael (Hyper-V), Petr (console/printk) and Vitaly (hyper-v /
kvm). I hope we can discuss and try to reach some consensus - my
apologies in advance for this long message!

So, here goes some feedback we received about this change and correlated
feedback from arm64 community - my apologies if I missed something
important, I've tried to collect the most relevant portions, while
keeping the summary "as short" as possible. I'll respond to such
feedback below, after the quotes.


On 24/05/2022 05:32, Baoquan He wrote:
>> [...] 
>> Firstly, kdump is not always the first thing. In any use case, if kdump
>> kernel is not loaded, it's not the first thing at all. Not to mention
>> if crash_kexec_post_notifiers is specified.
>> [...]
>> Changing this will cause regression. During these years, nobody ever doubt
>> kdump should execute firstly if crashkernel is reserved and kdump kernel is
>> loaded. That's not saying we can't change
>> this, but need a convincing justification.
>> [...] 
>> Secondly, even with the notifiers' split, we can't guarantee people will
>> absolutely add notifiers into right list in the future. Letting kdump
>> execute behind lists by default will put kdump into risk.
>> [...] 
>> As for Hyper-V, if it enforces to terminate VMbus connection, no matter
>> it's kdump or not, why not taking it out of panic notifiers list and
>> execute it before kdump unconditionally.


On 24/05/2022 05:01, Petr Mladek wrote:
>> [...]
>> Anyway, I see four possible solutions:
>> 
>>   1. The most conservative approach is to keep the current behavior
>>      and call kdump first by default.
>> 
>>   2. A medium conservative approach to change the default default
>>      behavior and call hypervisor and eventually the info notifiers
>>      before kdump. There still would be the possibility to call kdump
>>      first by the command line parameter.
>> 
>>   3. Remove the possibility to call kdump first completely. It would
>>      assume that all the notifiers in the info list are super safe
>>      or that they make kdump actually more safe.
>> 
>>   4. Create one more notifier list for operations that always should
>>      be called before crash_dump.
>> 
>> Regarding the extra notifier list (4th solution). It is not clear to
>> me whether it would be always called even before hypervisor list or
>> when kdump is not enabled. We must not over-engineer it.
>> 
>> 2nd proposal looks like a good compromise. But maybe we could do
>> this change few releases later. The notifiers split is a big
>> change on its own.


On 24/05/2022 07:18, Baoquan He wrote:
>>[...]
>> I would vote for 1 or 4 without any hesitation, and prefer 4. I ever
>> suggest the variant of solution 4 in v1 reviewing. That's taking those
>> notifiers out of list and enforcing to execute them before kdump. E.g
>> the one on HyperV to terminate VMbus connection. Maybe solution 4 is
>> better to provide a determinate way for people to add necessary code
>> at the earliest part.
>> [...] 
>>>
>>> Regarding the extra notifier list (4th solution). It is not clear to
>>> me whether it would be always called even before hypervisor list or
>>> when kdump is not enabled. We must not over-engineer it.
>> 
>> One thing I would like to notice is, no matter how perfect we split the
>> lists this time, we can't gurantee people will add notifiers reasonablly
>> in the future. And people from different sub-component may not do
>> sufficient investigation and add them to fulfil their local purpose.
>> 
>> The current panic notifers list is the best example. Hyper-V actually
>> wants to run some necessary code before kdump, but not all of them, they
>> just add it, ignoring the original purpose of
>> crash_kexec_post_notifiers. I guess they do like this just because it's
>> easy to do, no need to bother changing code in generic place.
>> 
>> Solution 4 can make this no doubt, that's why I like it better.
>> [...] 
>> As I replied to Guilherme, solution 2 will cause regression if not
>> calling kdump firstly. Solution 3 leaves people space to make mistake,
>> they could add nontifier into wrong list.
>> 
>> I would like to note again that the panic notifiers are optional to run,
>> while kdump is expectd once loaded, from the original purpose. I guess
>> people I know will still have this thought, e.g Hatayama, Masa, they are
>> truly often use panic notifiers like this on their company's system.


On 24/05/2022 11:44, Eric W. Biederman wrote:
> [...]
> Unfortunately I am also very grouchy.
> 
> Notifiers before kexec on panic are fundamentally broken.  So please
> just remove crash_kexec_post notifiers and be done with it.  Part of the
> deep issue is that firmware always has a common and broken
> implementation for anything that is not mission critical to
> motherboards.
> 
> Notifiers in any sense on these paths are just bollocks.  Any kind of
> notifier list is fundamentally fragile in the face of memory corruption
> and very very difficult to review.
> 
> So I am going to refresh my ancient NACK on this.
> 
> I can certainly appreciate that there are pieces of the reboot paths
> that can be improved.  I don't think making anything more feature full
> or flexible is any kind of real improvement.


Now, from the thread "Should arm64 have a custom crash shutdown
handler?" (link:
https://lore.kernel.org/lkml/427a8277-49f0-4317-d6c3-4a15d7070e55@igalia.com/),
we have:

On 05/05/2022 08:10, Mark Rutland wrote:
>> On Wed, May 04, 2022 at 05:00:42PM -0300, Guilherme G. Piccoli wrote:
>>> [...]
>>> Currently, when we kexec in arm64, the function machine_crash_shutdown()
>>> is called as a handler to disable CPUs and (potentially) do extra
>>> quiesce work. In the aforementioned architectures, there's a way to
>>> override this function, if for example an hypervisor wish to have its
>>> guests running their own custom shutdown machinery.
>> 
>> What exactly do you need to do in this custom shutdown machinery?
>> 
>> The general expectation for arm64 is that any hypervisor can implement PSCI,
>> and as long as you have that, CPUs (and the VM as a whole) can be shutdown in a
>> standard way.
>> 
>> I suspect what you're actually after is a mechanism to notify the hypervisor
>> when the guest crashes, rather than changing the way the shutdown itself
>> occurs? If so, we already have panic notifiers, and QEMU has a "pvpanic"
>> device using that. See drivers/misc/pvpanic/.


OK, so it seems we have some points in which agreement exists, and some
points that there is no agreement and instead, we have antagonistic /
opposite views and needs. Let's start with the easier part heh


It seems everybody agrees that *we shouldn't over-engineer things*, and
as per Eric good words: making the panic path more feature-full or
increasing flexibility isn't a good idea. So, as a "corollary": the
panic level approach I'm proposing is not a good fit, I'll drop it and
let's go with something simpler.

Another point of agreement seems to be that _notifier lists in the panic
path are dangerous_, for *2 different reasons*:

(a) We cannot guarantee that people won't add crazy callbacks there, we
can plan and document things the best as possible - it'll never be
enough, somebody eventually would slip a nonsense callback that would
break things and defeat the planned purpose of such a list;

(b) As per Eric point, in a panic/crash situation we might have memory
corruption exactly in the list code / pointers, etc, so the notifier
lists are, by nature, a bit fragile. But I think we shouldn't consider
it completely "bollocks", since this approach has been used for a while
with a good success rate. So, lists aren't perfect at all, but at the
same time, they aren't completely useless.


Now, to the points in which there are conflicting / antagonistic
needs/views:

(I) Kdump should be the first thing to run, as it's been like that since
forever. But...notice that "crash_kexec_post_notifiers" was created
exactly as a way to circumvent that, so we can see this is not an
absolute truth. Some users really *require to execute* some special code
*before kdump*.
Worth noticing here that regular kexec invokes the drivers .shutdown()
handlers, while kdump [aka crash_kexec()] does not, so we must have a
way to run code before kdump in a crash situation.

(II) If *we need* to have some code always running before kdump/reboot
on panic path (like the Hyper-V vmbus connection unload), *where to add
such code*? Again, conflicting views. Some would say we should hardcode
this in the panic() function. Others, that we should use the custom
machine_crash_shutdown() infrastructure - but notice that this isn't
available in all architectures, like arm64. Finally, others suggest
to...use notifier lists! Which was more or less the approach we took in
this patch.

How can we reach consensus on this? Not everybody will be 100% happy,
that's for sure. Also, I'd risk to say keep things as-is now or even
getting rid of "crash_kexec_post_notifiers" won't work at all, we have
users with legitimate needs of running code before a kdump/reboot when
crash happens. The *main goal* should be to have a *simple solution*
that doesn't require users to abuse parameters, like it's been done with
"crash_kexec_post_notifiers" (Hyper-V and PowerPC currently force this
parameter to be enabled, for example).


To avoid using a 4th list, especially given the list nature is a bit
fragile, I'd suggest one of the 3 following approaches - I *really
appreciate feedbacks* on that so I can implement the best solution and
avoid wasting time in some poor/disliked solution:

(1) We could have a helper function in the "beginning" of panic path,
i.e., after the logic to disable preemption/IRQs/secondary CPUs, but
*before* kdump. Then, users like Hyper-V that require to execute stuff
regardless of kdump or not, would run their callbacks from there,
directly, no lists involved.

- pros: simple, doesn't mess with arch code or involve lists.
- cons: header issues - will need to "export" such function from driver
code, for example, to run in core code. Also, some code might only be
required to run in some architectures, or only if kdump is set, etc.,
making the callbacks more complex / full of if conditionals.


(2) Similarly to previous solution, we could have a helper in the kexec
core code, not in the panic path. This way, users that require running
stuff *before a kdump* would add direct calls there; if kdump isn't
configured, and if such users also require that this code execute in
panic nevertheless, they'd need to also add a callback to some notifier
list.

- pros: also simple / doesn't mess with arch code or involve lists;
restricts the callbacks to kdump case.
- cons: also header issues, but might cause code duplicity too, since
some users would require both to run their code before a kdump and in
some panic notifier list.


(3) Have a way in arm64 (and all archs maybe) to run code before a kdump
- this is analog to the custom machine_crash_shutdown() we have nowadays
in some archs.

- pros: decouple kdump-required callbacks from panic notifiers, doesn't
involve lists, friendly to arch-dependent callbacks.
- cons: also header issues, might cause code duplicity (since some users
would also require to run their code in panic path regardless of kdump)
and involve changing arch code (some maintainers like Mark aren't fond
about that, with good reasons!).


So, hopefully we can converge to some direction even if not 100% of
users are happy - this problem is naturally full of trade-offs.
Thanks again for the reviews and the time you're spending reading these
long threads.

Cheers,


Guilherme

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
To: bhe@redhat.com, d.hatayama@jp.fujitsu.com,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Mark Rutland <mark.rutland@arm.com>,
	mikelley@microsoft.com, pmladek@suse.com, vkuznets@redhat.com
Cc: akpm@linux-foundation.org, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com,
	linuxppc-dev@lists.ozlabs.org, linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org, sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org, x86@kernel.org,
	kernel-dev@igalia.com, kernel@gpiccoli.net, halves@canonical.com,
	fabiomirmar@gmail.com, alejandro.j.jimenez@oracle.com,
	andriy.shevchenko@linux.intel.com, arnd@arndb.de, bp@alien8.de,
	corbet@lwn.net, dave.hansen@linux.intel.com, dyoung@redhat.com,
	feng.tang@intel.com, gregkh@linuxfoundation.org,
	hidehiro.kawai.ez@hitachi.com, jgross@suse.com,
	john.ogness@linutronix.de, keescook@chromium.org,
	luto@kernel.org, mhiramat@kernel.org, mingo@redhat.com,
	paulmck@kernel.org, peterz@infradead.org, rostedt@goodmis.org,
	senozhatsky@chromium.org, stern@rowland.harvard.edu,
	tglx@linutronix.de, vgoyal@redhat.com, will@kernel.org
Subject: Re: [PATCH 24/30] panic: Refactor the panic path
Date: Thu, 26 May 2022 13:25:57 -0300	[thread overview]
Message-ID: <0d084eed-4781-c815-29c7-ac62c498e216@igalia.com> (raw)
In-Reply-To: <87fskzuh11.fsf@email.froward.int.ebiederm.org>

Hey folks, first of all thanks a lot for the reviews / opinions about
this. I imagined that such change would be polemic, and I see I was
right heh


I'll try to "mix" all the relevant opinions in a single email, since
they happened in different responses and even different mail threads.

I've looped here the most interested parties based on the feedback
received, such as Baoquan (kdump), Hatayama (kdump), Eric (kexec), Mark
(arm64), Michael (Hyper-V), Petr (console/printk) and Vitaly (hyper-v /
kvm). I hope we can discuss and try to reach some consensus - my
apologies in advance for this long message!

So, here goes some feedback we received about this change and correlated
feedback from arm64 community - my apologies if I missed something
important, I've tried to collect the most relevant portions, while
keeping the summary "as short" as possible. I'll respond to such
feedback below, after the quotes.


On 24/05/2022 05:32, Baoquan He wrote:
>> [...] 
>> Firstly, kdump is not always the first thing. In any use case, if kdump
>> kernel is not loaded, it's not the first thing at all. Not to mention
>> if crash_kexec_post_notifiers is specified.
>> [...]
>> Changing this will cause regression. During these years, nobody ever doubt
>> kdump should execute firstly if crashkernel is reserved and kdump kernel is
>> loaded. That's not saying we can't change
>> this, but need a convincing justification.
>> [...] 
>> Secondly, even with the notifiers' split, we can't guarantee people will
>> absolutely add notifiers into right list in the future. Letting kdump
>> execute behind lists by default will put kdump into risk.
>> [...] 
>> As for Hyper-V, if it enforces to terminate VMbus connection, no matter
>> it's kdump or not, why not taking it out of panic notifiers list and
>> execute it before kdump unconditionally.


On 24/05/2022 05:01, Petr Mladek wrote:
>> [...]
>> Anyway, I see four possible solutions:
>> 
>>   1. The most conservative approach is to keep the current behavior
>>      and call kdump first by default.
>> 
>>   2. A medium conservative approach to change the default default
>>      behavior and call hypervisor and eventually the info notifiers
>>      before kdump. There still would be the possibility to call kdump
>>      first by the command line parameter.
>> 
>>   3. Remove the possibility to call kdump first completely. It would
>>      assume that all the notifiers in the info list are super safe
>>      or that they make kdump actually more safe.
>> 
>>   4. Create one more notifier list for operations that always should
>>      be called before crash_dump.
>> 
>> Regarding the extra notifier list (4th solution). It is not clear to
>> me whether it would be always called even before hypervisor list or
>> when kdump is not enabled. We must not over-engineer it.
>> 
>> 2nd proposal looks like a good compromise. But maybe we could do
>> this change few releases later. The notifiers split is a big
>> change on its own.


On 24/05/2022 07:18, Baoquan He wrote:
>>[...]
>> I would vote for 1 or 4 without any hesitation, and prefer 4. I ever
>> suggest the variant of solution 4 in v1 reviewing. That's taking those
>> notifiers out of list and enforcing to execute them before kdump. E.g
>> the one on HyperV to terminate VMbus connection. Maybe solution 4 is
>> better to provide a determinate way for people to add necessary code
>> at the earliest part.
>> [...] 
>>>
>>> Regarding the extra notifier list (4th solution). It is not clear to
>>> me whether it would be always called even before hypervisor list or
>>> when kdump is not enabled. We must not over-engineer it.
>> 
>> One thing I would like to notice is, no matter how perfect we split the
>> lists this time, we can't gurantee people will add notifiers reasonablly
>> in the future. And people from different sub-component may not do
>> sufficient investigation and add them to fulfil their local purpose.
>> 
>> The current panic notifers list is the best example. Hyper-V actually
>> wants to run some necessary code before kdump, but not all of them, they
>> just add it, ignoring the original purpose of
>> crash_kexec_post_notifiers. I guess they do like this just because it's
>> easy to do, no need to bother changing code in generic place.
>> 
>> Solution 4 can make this no doubt, that's why I like it better.
>> [...] 
>> As I replied to Guilherme, solution 2 will cause regression if not
>> calling kdump firstly. Solution 3 leaves people space to make mistake,
>> they could add nontifier into wrong list.
>> 
>> I would like to note again that the panic notifiers are optional to run,
>> while kdump is expectd once loaded, from the original purpose. I guess
>> people I know will still have this thought, e.g Hatayama, Masa, they are
>> truly often use panic notifiers like this on their company's system.


On 24/05/2022 11:44, Eric W. Biederman wrote:
> [...]
> Unfortunately I am also very grouchy.
> 
> Notifiers before kexec on panic are fundamentally broken.  So please
> just remove crash_kexec_post notifiers and be done with it.  Part of the
> deep issue is that firmware always has a common and broken
> implementation for anything that is not mission critical to
> motherboards.
> 
> Notifiers in any sense on these paths are just bollocks.  Any kind of
> notifier list is fundamentally fragile in the face of memory corruption
> and very very difficult to review.
> 
> So I am going to refresh my ancient NACK on this.
> 
> I can certainly appreciate that there are pieces of the reboot paths
> that can be improved.  I don't think making anything more feature full
> or flexible is any kind of real improvement.


Now, from the thread "Should arm64 have a custom crash shutdown
handler?" (link:
https://lore.kernel.org/lkml/427a8277-49f0-4317-d6c3-4a15d7070e55@igalia.com/),
we have:

On 05/05/2022 08:10, Mark Rutland wrote:
>> On Wed, May 04, 2022 at 05:00:42PM -0300, Guilherme G. Piccoli wrote:
>>> [...]
>>> Currently, when we kexec in arm64, the function machine_crash_shutdown()
>>> is called as a handler to disable CPUs and (potentially) do extra
>>> quiesce work. In the aforementioned architectures, there's a way to
>>> override this function, if for example an hypervisor wish to have its
>>> guests running their own custom shutdown machinery.
>> 
>> What exactly do you need to do in this custom shutdown machinery?
>> 
>> The general expectation for arm64 is that any hypervisor can implement PSCI,
>> and as long as you have that, CPUs (and the VM as a whole) can be shutdown in a
>> standard way.
>> 
>> I suspect what you're actually after is a mechanism to notify the hypervisor
>> when the guest crashes, rather than changing the way the shutdown itself
>> occurs? If so, we already have panic notifiers, and QEMU has a "pvpanic"
>> device using that. See drivers/misc/pvpanic/.


OK, so it seems we have some points in which agreement exists, and some
points that there is no agreement and instead, we have antagonistic /
opposite views and needs. Let's start with the easier part heh


It seems everybody agrees that *we shouldn't over-engineer things*, and
as per Eric good words: making the panic path more feature-full or
increasing flexibility isn't a good idea. So, as a "corollary": the
panic level approach I'm proposing is not a good fit, I'll drop it and
let's go with something simpler.

Another point of agreement seems to be that _notifier lists in the panic
path are dangerous_, for *2 different reasons*:

(a) We cannot guarantee that people won't add crazy callbacks there, we
can plan and document things the best as possible - it'll never be
enough, somebody eventually would slip a nonsense callback that would
break things and defeat the planned purpose of such a list;

(b) As per Eric point, in a panic/crash situation we might have memory
corruption exactly in the list code / pointers, etc, so the notifier
lists are, by nature, a bit fragile. But I think we shouldn't consider
it completely "bollocks", since this approach has been used for a while
with a good success rate. So, lists aren't perfect at all, but at the
same time, they aren't completely useless.


Now, to the points in which there are conflicting / antagonistic
needs/views:

(I) Kdump should be the first thing to run, as it's been like that since
forever. But...notice that "crash_kexec_post_notifiers" was created
exactly as a way to circumvent that, so we can see this is not an
absolute truth. Some users really *require to execute* some special code
*before kdump*.
Worth noticing here that regular kexec invokes the drivers .shutdown()
handlers, while kdump [aka crash_kexec()] does not, so we must have a
way to run code before kdump in a crash situation.

(II) If *we need* to have some code always running before kdump/reboot
on panic path (like the Hyper-V vmbus connection unload), *where to add
such code*? Again, conflicting views. Some would say we should hardcode
this in the panic() function. Others, that we should use the custom
machine_crash_shutdown() infrastructure - but notice that this isn't
available in all architectures, like arm64. Finally, others suggest
to...use notifier lists! Which was more or less the approach we took in
this patch.

How can we reach consensus on this? Not everybody will be 100% happy,
that's for sure. Also, I'd risk to say keep things as-is now or even
getting rid of "crash_kexec_post_notifiers" won't work at all, we have
users with legitimate needs of running code before a kdump/reboot when
crash happens. The *main goal* should be to have a *simple solution*
that doesn't require users to abuse parameters, like it's been done with
"crash_kexec_post_notifiers" (Hyper-V and PowerPC currently force this
parameter to be enabled, for example).


To avoid using a 4th list, especially given the list nature is a bit
fragile, I'd suggest one of the 3 following approaches - I *really
appreciate feedbacks* on that so I can implement the best solution and
avoid wasting time in some poor/disliked solution:

(1) We could have a helper function in the "beginning" of panic path,
i.e., after the logic to disable preemption/IRQs/secondary CPUs, but
*before* kdump. Then, users like Hyper-V that require to execute stuff
regardless of kdump or not, would run their callbacks from there,
directly, no lists involved.

- pros: simple, doesn't mess with arch code or involve lists.
- cons: header issues - will need to "export" such function from driver
code, for example, to run in core code. Also, some code might only be
required to run in some architectures, or only if kdump is set, etc.,
making the callbacks more complex / full of if conditionals.


(2) Similarly to previous solution, we could have a helper in the kexec
core code, not in the panic path. This way, users that require running
stuff *before a kdump* would add direct calls there; if kdump isn't
configured, and if such users also require that this code execute in
panic nevertheless, they'd need to also add a callback to some notifier
list.

- pros: also simple / doesn't mess with arch code or involve lists;
restricts the callbacks to kdump case.
- cons: also header issues, but might cause code duplicity too, since
some users would require both to run their code before a kdump and in
some panic notifier list.


(3) Have a way in arm64 (and all archs maybe) to run code before a kdump
- this is analog to the custom machine_crash_shutdown() we have nowadays
in some archs.

- pros: decouple kdump-required callbacks from panic notifiers, doesn't
involve lists, friendly to arch-dependent callbacks.
- cons: also header issues, might cause code duplicity (since some users
would also require to run their code in panic path regardless of kdump)
and involve changing arch code (some maintainers like Mark aren't fond
about that, with good reasons!).


So, hopefully we can converge to some direction even if not 100% of
users are happy - this problem is naturally full of trade-offs.
Thanks again for the reviews and the time you're spending reading these
long threads.

Cheers,


Guilherme

_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um


WARNING: multiple messages have this Message-ID (diff)
From: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
To: bhe@redhat.com, d.hatayama@jp.fujitsu.com,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Mark Rutland <mark.rutland@arm.com>,
	mikelley@microsoft.com, pmladek@suse.com, vkuznets@redhat.com
Cc: akpm@linux-foundation.org, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com,
	linuxppc-dev@lists.ozlabs.org, linux-alpha@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	netdev@vger.kernel.org, openipmi-developer@lists.sourceforge.net,
	rcu@vger.kernel.org, sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org, x86@kernel.org,
	kernel-dev@igalia.com, kernel@gpiccoli.net, halves@canonical.com,
Subject: Re: [PATCH 24/30] panic: Refactor the panic path
Date: Thu, 26 May 2022 13:25:57 -0300	[thread overview]
Message-ID: <0d084eed-4781-c815-29c7-ac62c498e216@igalia.com> (raw)
In-Reply-To: <87fskzuh11.fsf@email.froward.int.ebiederm.org>

Hey folks, first of all thanks a lot for the reviews / opinions about
this. I imagined that such change would be polemic, and I see I was
right heh


I'll try to "mix" all the relevant opinions in a single email, since
they happened in different responses and even different mail threads.

I've looped here the most interested parties based on the feedback
received, such as Baoquan (kdump), Hatayama (kdump), Eric (kexec), Mark
(arm64), Michael (Hyper-V), Petr (console/printk) and Vitaly (hyper-v /
kvm). I hope we can discuss and try to reach some consensus - my
apologies in advance for this long message!

So, here goes some feedback we received about this change and correlated
feedback from arm64 community - my apologies if I missed something
important, I've tried to collect the most relevant portions, while
keeping the summary "as short" as possible. I'll respond to such
feedback below, after the quotes.


On 24/05/2022 05:32, Baoquan He wrote:
>> [...] 
>> Firstly, kdump is not always the first thing. In any use case, if kdump
>> kernel is not loaded, it's not the first thing at all. Not to mention
>> if crash_kexec_post_notifiers is specified.
>> [...]
>> Changing this will cause regression. During these years, nobody ever doubt
>> kdump should execute firstly if crashkernel is reserved and kdump kernel is
>> loaded. That's not saying we can't change
>> this, but need a convincing justification.
>> [...] 
>> Secondly, even with the notifiers' split, we can't guarantee people will
>> absolutely add notifiers into right list in the future. Letting kdump
>> execute behind lists by default will put kdump into risk.
>> [...] 
>> As for Hyper-V, if it enforces to terminate VMbus connection, no matter
>> it's kdump or not, why not taking it out of panic notifiers list and
>> execute it before kdump unconditionally.


On 24/05/2022 05:01, Petr Mladek wrote:
>> [...]
>> Anyway, I see four possible solutions:
>> 
>>   1. The most conservative approach is to keep the current behavior
>>      and call kdump first by default.
>> 
>>   2. A medium conservative approach to change the default default
>>      behavior and call hypervisor and eventually the info notifiers
>>      before kdump. There still would be the possibility to call kdump
>>      first by the command line parameter.
>> 
>>   3. Remove the possibility to call kdump first completely. It would
>>      assume that all the notifiers in the info list are super safe
>>      or that they make kdump actually more safe.
>> 
>>   4. Create one more notifier list for operations that always should
>>      be called before crash_dump.
>> 
>> Regarding the extra notifier list (4th solution). It is not clear to
>> me whether it would be always called even before hypervisor list or
>> when kdump is not enabled. We must not over-engineer it.
>> 
>> 2nd proposal looks like a good compromise. But maybe we could do
>> this change few releases later. The notifiers split is a big
>> change on its own.


On 24/05/2022 07:18, Baoquan He wrote:
>>[...]
>> I would vote for 1 or 4 without any hesitation, and prefer 4. I ever
>> suggest the variant of solution 4 in v1 reviewing. That's taking those
>> notifiers out of list and enforcing to execute them before kdump. E.g
>> the one on HyperV to terminate VMbus connection. Maybe solution 4 is
>> better to provide a determinate way for people to add necessary code
>> at the earliest part.
>> [...] 
>>>
>>> Regarding the extra notifier list (4th solution). It is not clear to
>>> me whether it would be always called even before hypervisor list or
>>> when kdump is not enabled. We must not over-engineer it.
>> 
>> One thing I would like to notice is, no matter how perfect we split the
>> lists this time, we can't gurantee people will add notifiers reasonablly
>> in the future. And people from different sub-component may not do
>> sufficient investigation and add them to fulfil their local purpose.
>> 
>> The current panic notifers list is the best example. Hyper-V actually
>> wants to run some necessary code before kdump, but not all of them, they
>> just add it, ignoring the original purpose of
>> crash_kexec_post_notifiers. I guess they do like this just because it's
>> easy to do, no need to bother changing code in generic place.
>> 
>> Solution 4 can make this no doubt, that's why I like it better.
>> [...] 
>> As I replied to Guilherme, solution 2 will cause regression if not
>> calling kdump firstly. Solution 3 leaves people space to make mistake,
>> they could add nontifier into wrong list.
>> 
>> I would like to note again that the panic notifiers are optional to run,
>> while kdump is expectd once loaded, from the original purpose. I guess
>> people I know will still have this thought, e.g Hatayama, Masa, they are
>> truly often use panic notifiers like this on their company's system.


On 24/05/2022 11:44, Eric W. Biederman wrote:
> [...]
> Unfortunately I am also very grouchy.
> 
> Notifiers before kexec on panic are fundamentally broken.  So please
> just remove crash_kexec_post notifiers and be done with it.  Part of the
> deep issue is that firmware always has a common and broken
> implementation for anything that is not mission critical to
> motherboards.
> 
> Notifiers in any sense on these paths are just bollocks.  Any kind of
> notifier list is fundamentally fragile in the face of memory corruption
> and very very difficult to review.
> 
> So I am going to refresh my ancient NACK on this.
> 
> I can certainly appreciate that there are pieces of the reboot paths
> that can be improved.  I don't think making anything more feature full
> or flexible is any kind of real improvement.


Now, from the thread "Should arm64 have a custom crash shutdown
handler?" (link:
https://lore.kernel.org/lkml/427a8277-49f0-4317-d6c3-4a15d7070e55@igalia.com/),
we have:

On 05/05/2022 08:10, Mark Rutland wrote:
>> On Wed, May 04, 2022 at 05:00:42PM -0300, Guilherme G. Piccoli wrote:
>>> [...]
>>> Currently, when we kexec in arm64, the function machine_crash_shutdown()
>>> is called as a handler to disable CPUs and (potentially) do extra
>>> quiesce work. In the aforementioned architectures, there's a way to
>>> override this function, if for example an hypervisor wish to have its
>>> guests running their own custom shutdown machinery.
>> 
>> What exactly do you need to do in this custom shutdown machinery?
>> 
>> The general expectation for arm64 is that any hypervisor can implement PSCI,
>> and as long as you have that, CPUs (and the VM as a whole) can be shutdown in a
>> standard way.
>> 
>> I suspect what you're actually after is a mechanism to notify the hypervisor
>> when the guest crashes, rather than changing the way the shutdown itself
>> occurs? If so, we already have panic notifiers, and QEMU has a "pvpanic"
>> device using that. See drivers/misc/pvpanic/.


OK, so it seems we have some points in which agreement exists, and some
points that there is no agreement and instead, we have antagonistic /
opposite views and needs. Let's start with the easier part heh


It seems everybody agrees that *we shouldn't over-engineer things*, and
as per Eric good words: making the panic path more feature-full or
increasing flexibility isn't a good idea. So, as a "corollary": the
panic level approach I'm proposing is not a good fit, I'll drop it and
let's go with something simpler.

Another point of agreement seems to be that _notifier lists in the panic
path are dangerous_, for *2 different reasons*:

(a) We cannot guarantee that people won't add crazy callbacks there, we
can plan and document things the best as possible - it'll never be
enough, somebody eventually would slip a nonsense callback that would
break things and defeat the planned purpose of such a list;

(b) As per Eric point, in a panic/crash situation we might have memory
corruption exactly in the list code / pointers, etc, so the notifier
lists are, by nature, a bit fragile. But I think we shouldn't consider
it completely "bollocks", since this approach has been used for a while
with a good success rate. So, lists aren't perfect at all, but at the
same time, they aren't completely useless.


Now, to the points in which there are conflicting / antagonistic
needs/views:

(I) Kdump should be the first thing to run, as it's been like that since
forever. But...notice that "crash_kexec_post_notifiers" was created
exactly as a way to circumvent that, so we can see this is not an
absolute truth. Some users really *require to execute* some special code
*before kdump*.
Worth noticing here that regular kexec invokes the drivers .shutdown()
handlers, while kdump [aka crash_kexec()] does not, so we must have a
way to run code before kdump in a crash situation.

(II) If *we need* to have some code always running before kdump/reboot
on panic path (like the Hyper-V vmbus connection unload), *where to add
such code*? Again, conflicting views. Some would say we should hardcode
this in the panic() function. Others, that we should use the custom
machine_crash_shutdown() infrastructure - but notice that this isn't
available in all architectures, like arm64. Finally, others suggest
to...use notifier lists! Which was more or less the approach we took in
this patch.

How can we reach consensus on this? Not everybody will be 100% happy,
that's for sure. Also, I'd risk to say keep things as-is now or even
getting rid of "crash_kexec_post_notifiers" won't work at all, we have
users with legitimate needs of running code before a kdump/reboot when
crash happens. The *main goal* should be to have a *simple solution*
that doesn't require users to abuse parameters, like it's been done with
"crash_kexec_post_notifiers" (Hyper-V and PowerPC currently force this
parameter to be enabled, for example).


To avoid using a 4th list, especially given the list nature is a bit
fragile, I'd suggest one of the 3 following approaches - I *really
appreciate feedbacks* on that so I can implement the best solution and
avoid wasting time in some poor/disliked solution:

(1) We could have a helper function in the "beginning" of panic path,
i.e., after the logic to disable preemption/IRQs/secondary CPUs, but
*before* kdump. Then, users like Hyper-V that require to execute stuff
regardless of kdump or not, would run their callbacks from there,
directly, no lists involved.

- pros: simple, doesn't mess with arch code or involve lists.
- cons: header issues - will need to "export" such function from driver
code, for example, to run in core code. Also, some code might only be
required to run in some architectures, or only if kdump is set, etc.,
making the callbacks more complex / full of if conditionals.


(2) Similarly to previous solution, we could have a helper in the kexec
core code, not in the panic path. This way, users that require running
stuff *before a kdump* would add direct calls there; if kdump isn't
configured, and if such users also require that this code execute in
panic nevertheless, they'd need to also add a callback to some notifier
list.

- pros: also simple / doesn't mess with arch code or involve lists;
restricts the callbacks to kdump case.
- cons: also header issues, but might cause code duplicity too, since
some users would require both to run their code before a kdump and in
some panic notifier list.


(3) Have a way in arm64 (and all archs maybe) to run code before a kdump
- this is analog to the custom machine_crash_shutdown() we have nowadays
in some archs.

- pros: decouple kdump-required callbacks from panic notifiers, doesn't
involve lists, friendly to arch-dependent callbacks.
- cons: also header issues, might cause code duplicity (since some users
would also require to run their code in panic path regardless of kdump)
and involve changing arch code (some maintainers like Mark aren't fond
about that, with good reasons!).


So, hopefully we can converge to some direction even if not 100% of
users are happy - this problem is naturally full of trade-offs.
Thanks again for the reviews and the time you're spending reading these
long threads.

Cheers,


Guilherme

  reply	other threads:[~2022-05-26 16:27 UTC|newest]

Thread overview: 877+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-27 22:48 [PATCH 00/30] The panic notifiers refactor Guilherme G. Piccoli
2022-04-27 22:48 ` Guilherme G. Piccoli
2022-04-27 22:48 ` Guilherme G. Piccoli
2022-04-27 22:48 ` Guilherme G. Piccoli
2022-04-27 22:48 ` [PATCH 01/30] x86/crash,reboot: Avoid re-disabling VMX in all CPUs on crash/restart Guilherme G. Piccoli
2022-04-27 22:48   ` [PATCH 01/30] x86/crash, reboot: " Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-05-09 12:32   ` [PATCH 01/30] x86/crash,reboot: " Guilherme G. Piccoli
2022-05-09 12:32     ` Guilherme G. Piccoli
2022-05-09 12:32     ` Guilherme G. Piccoli
2022-05-09 12:32     ` Guilherme G. Piccoli
2022-05-09 12:32     ` Guilherme G. Piccoli
2022-05-09 15:52   ` Sean Christopherson
2022-05-09 15:52     ` Sean Christopherson
2022-05-09 15:52     ` Sean Christopherson
2022-05-09 15:52     ` Sean Christopherson
2022-05-09 15:52     ` Sean Christopherson
2022-05-10 20:11     ` Guilherme G. Piccoli
2022-05-10 20:11       ` Guilherme G. Piccoli
2022-05-10 20:11       ` Guilherme G. Piccoli
2022-05-10 20:11       ` Guilherme G. Piccoli
2022-05-10 20:11       ` Guilherme G. Piccoli
2022-04-27 22:48 ` [PATCH 02/30] ARM: kexec: Disable IRQs/FIQs also on crash CPUs shutdown path Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-29 16:26   ` Michael Kelley (LINUX)
2022-04-29 16:26     ` Michael Kelley (LINUX)
2022-04-29 16:26     ` Michael Kelley
2022-04-29 16:26     ` Michael Kelley (LINUX)
2022-04-29 18:20   ` Marc Zyngier
2022-04-29 18:20     ` Marc Zyngier
2022-04-29 18:20     ` Marc Zyngier
2022-04-29 18:20     ` Marc Zyngier
2022-04-29 18:20     ` Marc Zyngier
2022-04-29 21:38     ` Guilherme G. Piccoli
2022-04-29 21:38       ` Guilherme G. Piccoli
2022-04-29 21:38       ` Guilherme G. Piccoli
2022-04-29 21:38       ` Guilherme G. Piccoli
2022-04-29 21:38       ` Guilherme G. Piccoli
2022-04-29 21:45       ` Russell King (Oracle)
2022-04-29 21:45         ` Russell King (Oracle)
2022-04-29 21:45         ` Russell King (Oracle)
2022-04-29 21:45         ` Russell King
2022-04-29 21:45         ` Russell King (Oracle)
2022-04-29 21:56         ` Guilherme G. Piccoli
2022-04-29 21:56           ` Guilherme G. Piccoli
2022-04-29 21:56           ` Guilherme G. Piccoli
2022-04-29 21:56           ` Guilherme G. Piccoli
2022-04-29 21:56           ` Guilherme G. Piccoli
2022-04-29 22:00         ` Marc Zyngier
2022-04-29 22:00           ` Marc Zyngier
2022-04-29 22:00           ` Marc Zyngier
2022-04-29 22:00           ` Marc Zyngier
2022-04-29 22:00           ` Marc Zyngier
2022-04-27 22:48 ` [PATCH 03/30] notifier: Add panic notifiers info and purge trailing whitespaces Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48 ` [PATCH 04/30] firmware: google: Convert regular spinlock into trylock on panic path Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-05-03 18:03   ` Evan Green
2022-05-03 18:03     ` Evan Green
2022-05-03 18:03     ` Evan Green
2022-05-03 18:03     ` Evan Green
2022-05-03 18:03     ` Evan Green
2022-05-03 19:12     ` Guilherme G. Piccoli
2022-05-03 19:12       ` Guilherme G. Piccoli
2022-05-03 19:12       ` Guilherme G. Piccoli
2022-05-03 19:12       ` Guilherme G. Piccoli
2022-05-03 19:12       ` Guilherme G. Piccoli
2022-05-03 21:56       ` Evan Green
2022-05-03 21:56         ` Evan Green
2022-05-03 21:56         ` Evan Green
2022-05-03 21:56         ` Evan Green
2022-05-03 21:56         ` Evan Green
2022-05-04 12:45         ` Guilherme G. Piccoli
2022-05-04 12:45           ` Guilherme G. Piccoli
2022-05-04 12:45           ` Guilherme G. Piccoli
2022-05-04 12:45           ` Guilherme G. Piccoli
2022-05-04 12:45           ` Guilherme G. Piccoli
2022-05-10 11:38       ` Petr Mladek
2022-05-10 11:38         ` Petr Mladek
2022-05-10 11:38         ` Petr Mladek
2022-05-10 11:38         ` Petr Mladek
2022-05-10 11:38         ` Petr Mladek
2022-05-10 13:04         ` Guilherme G. Piccoli
2022-05-10 13:04           ` Guilherme G. Piccoli
2022-05-10 13:04           ` Guilherme G. Piccoli
2022-05-10 13:04           ` Guilherme G. Piccoli
2022-05-10 13:04           ` Guilherme G. Piccoli
2022-05-10 17:20         ` Steven Rostedt
2022-05-10 17:20           ` Steven Rostedt
2022-05-10 17:20           ` Steven Rostedt
2022-05-10 17:20           ` Steven Rostedt
2022-05-10 17:20           ` Steven Rostedt
2022-05-10 19:40           ` John Ogness
2022-05-10 19:40             ` John Ogness
2022-05-10 19:40             ` John Ogness
2022-05-10 19:40             ` John Ogness
2022-05-10 19:40             ` John Ogness
2022-05-11 11:13             ` Petr Mladek
2022-05-11 11:13               ` Petr Mladek
2022-05-11 11:13               ` Petr Mladek
2022-05-11 11:13               ` Petr Mladek
2022-05-11 11:13               ` Petr Mladek
2022-04-27 22:48 ` [PATCH 05/30] misc/pvpanic: " Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-04-27 22:48   ` Guilherme G. Piccoli
2022-05-10 12:14   ` Petr Mladek
2022-05-10 12:14     ` Petr Mladek
2022-05-10 12:14     ` Petr Mladek
2022-05-10 12:14     ` Petr Mladek
2022-05-10 12:14     ` Petr Mladek
2022-05-10 13:00     ` Guilherme G. Piccoli
2022-05-10 13:00       ` Guilherme G. Piccoli
2022-05-10 13:00       ` Guilherme G. Piccoli
2022-05-10 13:00       ` Guilherme G. Piccoli
2022-05-10 13:00       ` Guilherme G. Piccoli
2022-05-17 10:58       ` Petr Mladek
2022-05-17 10:58         ` Petr Mladek
2022-05-17 10:58         ` Petr Mladek
2022-05-17 10:58         ` Petr Mladek
2022-05-17 10:58         ` Petr Mladek
2022-05-17 13:03         ` Guilherme G. Piccoli
2022-05-17 13:03           ` Guilherme G. Piccoli
2022-05-17 13:03           ` Guilherme G. Piccoli
2022-05-17 13:03           ` Guilherme G. Piccoli
2022-05-17 13:03           ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 06/30] soc: bcm: brcmstb: Document panic notifier action and remove useless header Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-02 15:38   ` Florian Fainelli
2022-05-02 15:38     ` Florian Fainelli
2022-05-02 15:38     ` Florian Fainelli
2022-05-02 15:38     ` Florian Fainelli
2022-05-02 15:38     ` Florian Fainelli
2022-05-02 15:47     ` Guilherme G. Piccoli
2022-05-02 15:47       ` Guilherme G. Piccoli
2022-05-02 15:47       ` Guilherme G. Piccoli
2022-05-02 15:47       ` Guilherme G. Piccoli
2022-05-02 15:47       ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 07/30] mips: ip22: Reword PANICED to PANICKED " Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-04 20:32   ` Thomas Bogendoerfer
2022-05-04 20:32     ` Thomas Bogendoerfer
2022-05-04 20:32     ` Thomas Bogendoerfer
2022-05-04 20:32     ` Thomas Bogendoerfer
2022-05-04 20:32     ` Thomas Bogendoerfer
2022-05-04 21:26     ` Guilherme G. Piccoli
2022-05-04 21:26       ` Guilherme G. Piccoli
2022-05-04 21:26       ` Guilherme G. Piccoli
2022-05-04 21:26       ` Guilherme G. Piccoli
2022-05-04 21:26       ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 08/30] powerpc/setup: Refactor/untangle panic notifiers Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-05 18:55   ` Hari Bathini
2022-05-05 18:55     ` Hari Bathini
2022-05-05 18:55     ` Hari Bathini
2022-05-05 18:55     ` Hari Bathini
2022-05-05 18:55     ` Hari Bathini
2022-05-05 19:28     ` Guilherme G. Piccoli
2022-05-05 19:28       ` Guilherme G. Piccoli
2022-05-05 19:28       ` Guilherme G. Piccoli
2022-05-05 19:28       ` Guilherme G. Piccoli
2022-05-05 19:28       ` Guilherme G. Piccoli
2022-05-09 12:50     ` Guilherme G. Piccoli
2022-05-09 12:50       ` Guilherme G. Piccoli
2022-05-09 12:50       ` Guilherme G. Piccoli
2022-05-09 12:50       ` Guilherme G. Piccoli
2022-05-09 12:50       ` Guilherme G. Piccoli
2022-05-10 13:53       ` Michael Ellerman
2022-05-10 13:53         ` Michael Ellerman
2022-05-10 13:53         ` Michael Ellerman
2022-05-10 13:53         ` Michael Ellerman
2022-05-10 13:53         ` Michael Ellerman
2022-05-10 14:10         ` Guilherme G. Piccoli
2022-05-10 14:10           ` Guilherme G. Piccoli
2022-05-10 14:10           ` Guilherme G. Piccoli
2022-05-10 14:10           ` Guilherme G. Piccoli
2022-05-10 14:10           ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 09/30] coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-28  8:11   ` Suzuki K Poulose
2022-04-28  8:11     ` Suzuki K Poulose
2022-04-28  8:11     ` Suzuki K Poulose
2022-04-28  8:11     ` Suzuki K Poulose
2022-04-28  8:11     ` Suzuki K Poulose
2022-04-29 14:01     ` Guilherme G. Piccoli
2022-04-29 14:01       ` Guilherme G. Piccoli
2022-04-29 14:01       ` Guilherme G. Piccoli
2022-04-29 14:01       ` Guilherme G. Piccoli
2022-04-29 14:01       ` Guilherme G. Piccoli
2022-05-09 13:09     ` Guilherme G. Piccoli
2022-05-09 13:09       ` Guilherme G. Piccoli
2022-05-09 13:09       ` Guilherme G. Piccoli
2022-05-09 13:09       ` Guilherme G. Piccoli
2022-05-09 13:09       ` Guilherme G. Piccoli
2022-05-09 16:14       ` Suzuki K Poulose
2022-05-09 16:14         ` Suzuki K Poulose
2022-05-09 16:14         ` Suzuki K Poulose
2022-05-09 16:14         ` Suzuki K Poulose
2022-05-09 16:14         ` Suzuki K Poulose
2022-05-09 16:26         ` Guilherme G. Piccoli
2022-05-09 16:26           ` Guilherme G. Piccoli
2022-05-09 16:26           ` Guilherme G. Piccoli
2022-05-09 16:26           ` Guilherme G. Piccoli
2022-05-09 16:26           ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 10/30] alpha: Clean-up the panic notifier code Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-09 14:13   ` Guilherme G. Piccoli
2022-05-09 14:13     ` Guilherme G. Piccoli
2022-05-09 14:13     ` Guilherme G. Piccoli
2022-05-09 14:13     ` Guilherme G. Piccoli
2022-05-09 14:13     ` Guilherme G. Piccoli
2022-05-10 14:16     ` Petr Mladek
2022-05-10 14:16       ` Petr Mladek
2022-05-10 14:16       ` Petr Mladek
2022-05-10 14:16       ` Petr Mladek
2022-05-10 14:16       ` Petr Mladek
2022-05-11 20:10       ` Guilherme G. Piccoli
2022-05-11 20:10         ` Guilherme G. Piccoli
2022-05-11 20:10         ` Guilherme G. Piccoli
2022-05-11 20:10         ` Guilherme G. Piccoli
2022-05-11 20:10         ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 11/30] um: Improve panic notifiers consistency and ordering Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-28  8:30   ` Johannes Berg
2022-04-29 15:46     ` Guilherme G. Piccoli
2022-05-10 14:28   ` Petr Mladek
2022-05-10 14:28     ` Petr Mladek
2022-05-10 14:28     ` Petr Mladek
2022-05-10 14:28     ` Petr Mladek
2022-05-10 14:28     ` Petr Mladek
2022-05-11 20:22     ` Guilherme G. Piccoli
2022-05-11 20:22       ` Guilherme G. Piccoli
2022-05-11 20:22       ` Guilherme G. Piccoli
2022-05-11 20:22       ` Guilherme G. Piccoli
2022-05-11 20:22       ` Guilherme G. Piccoli
2022-05-13 14:44       ` Johannes Berg
2022-05-13 14:44         ` Johannes Berg
2022-05-13 14:44         ` Johannes Berg
2022-05-13 14:44         ` Johannes Berg
2022-05-13 14:44         ` Johannes Berg
2022-05-15 22:12         ` Guilherme G. Piccoli
2022-05-15 22:12           ` Guilherme G. Piccoli
2022-05-15 22:12           ` Guilherme G. Piccoli
2022-05-15 22:12           ` Guilherme G. Piccoli
2022-05-15 22:12           ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 12/30] parisc: Replace regular spinlock with spin_trylock on panic path Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-28 16:55   ` Helge Deller
2022-04-28 16:55     ` Helge Deller
2022-04-28 16:55     ` Helge Deller
2022-04-28 16:55     ` Helge Deller
2022-04-28 16:55     ` Helge Deller
2022-04-29 14:34     ` Guilherme G. Piccoli
2022-04-29 14:34       ` Guilherme G. Piccoli
2022-04-29 14:34       ` Guilherme G. Piccoli
2022-04-29 14:34       ` Guilherme G. Piccoli
2022-04-29 14:34       ` Guilherme G. Piccoli
2022-05-23 20:40     ` Guilherme G. Piccoli
2022-05-23 20:40       ` Guilherme G. Piccoli
2022-05-23 20:40       ` Guilherme G. Piccoli
2022-05-23 20:40       ` Guilherme G. Piccoli
2022-05-23 20:40       ` Guilherme G. Piccoli
2022-05-23 21:31       ` Helge Deller
2022-05-23 21:55         ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 13/30] s390/consoles: Improve panic notifiers reliability Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-29 18:46   ` Heiko Carstens
2022-04-29 18:46     ` Heiko Carstens
2022-04-29 18:46     ` Heiko Carstens
2022-04-29 18:46     ` Heiko Carstens
2022-04-29 18:46     ` Heiko Carstens
2022-04-29 19:31     ` Guilherme G. Piccoli
2022-04-29 19:31       ` Guilherme G. Piccoli
2022-04-29 19:31       ` Guilherme G. Piccoli
2022-04-29 19:31       ` Guilherme G. Piccoli
2022-04-29 19:31       ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 14/30] panic: Properly identify the panic event to the notifiers' callbacks Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-10 15:16   ` Petr Mladek
2022-05-10 15:16     ` Petr Mladek via Openipmi-developer
2022-05-10 15:16     ` Petr Mladek
2022-05-10 15:16     ` Petr Mladek
2022-05-10 15:16     ` Petr Mladek
2022-05-10 16:16     ` Guilherme G. Piccoli
2022-05-10 16:16       ` Guilherme G. Piccoli
2022-05-10 16:16       ` Guilherme G. Piccoli
2022-05-10 16:16       ` Guilherme G. Piccoli
2022-05-10 16:16       ` Guilherme G. Piccoli
2022-05-17 13:11       ` Petr Mladek
2022-05-17 13:11         ` Petr Mladek
2022-05-17 13:11         ` Petr Mladek
2022-05-17 13:11         ` Petr Mladek
2022-05-17 13:11         ` Petr Mladek
2022-05-17 15:19         ` Guilherme G. Piccoli
2022-05-17 15:19           ` Guilherme G. Piccoli
2022-05-17 15:19           ` Guilherme G. Piccoli
2022-05-17 15:19           ` Guilherme G. Piccoli
2022-05-17 15:19           ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 15/30] bus: brcmstb_gisb: Clean-up panic/die notifiers Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-02 15:38   ` Florian Fainelli
2022-05-02 15:38     ` Florian Fainelli
2022-05-02 15:38     ` Florian Fainelli
2022-05-02 15:38     ` Florian Fainelli
2022-05-02 15:38     ` Florian Fainelli
2022-05-02 15:50     ` Guilherme G. Piccoli
2022-05-02 15:50       ` Guilherme G. Piccoli
2022-05-02 15:50       ` Guilherme G. Piccoli
2022-05-02 15:50       ` Guilherme G. Piccoli
2022-05-02 15:50       ` Guilherme G. Piccoli
2022-05-10 15:28   ` Petr Mladek
2022-05-10 15:28     ` Petr Mladek
2022-05-10 15:28     ` Petr Mladek
2022-05-10 15:28     ` Petr Mladek
2022-05-10 15:28     ` Petr Mladek
2022-05-17 15:32     ` Guilherme G. Piccoli
2022-05-17 15:32       ` Guilherme G. Piccoli
2022-05-17 15:32       ` Guilherme G. Piccoli
2022-05-17 15:32       ` Guilherme G. Piccoli
2022-05-17 15:32       ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 16/30] drivers/hv/vmbus, video/hyperv_fb: Untangle and refactor Hyper-V panic notifiers Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-29 17:16   ` Michael Kelley (LINUX)
2022-04-29 17:16     ` Michael Kelley (LINUX)
2022-04-29 17:16     ` Michael Kelley
2022-04-29 17:16     ` Michael Kelley (LINUX)
2022-04-29 22:35     ` Guilherme G. Piccoli
2022-04-29 22:35       ` Guilherme G. Piccoli
2022-04-29 22:35       ` Guilherme G. Piccoli
2022-04-29 22:35       ` Guilherme G. Piccoli
2022-04-29 22:35       ` Guilherme G. Piccoli
2022-05-03 18:13       ` Michael Kelley (LINUX)
2022-05-03 18:13         ` Michael Kelley (LINUX)
2022-05-03 18:13         ` Michael Kelley
2022-05-03 18:13         ` Michael Kelley (LINUX)
2022-05-03 18:57         ` Guilherme G. Piccoli
2022-05-03 18:57           ` Guilherme G. Piccoli
2022-05-03 18:57           ` Guilherme G. Piccoli
2022-05-03 18:57           ` Guilherme G. Piccoli
2022-05-03 18:57           ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 17/30] tracing: Improve panic/die notifiers Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-29  9:22   ` Sergei Shtylyov
2022-04-29  9:22     ` Sergei Shtylyov
2022-04-29  9:22     ` Sergei Shtylyov
2022-04-29  9:22     ` Sergei Shtylyov
2022-04-29  9:22     ` Sergei Shtylyov
2022-04-29 13:23     ` Steven Rostedt
2022-04-29 13:23       ` Steven Rostedt
2022-04-29 13:23       ` Steven Rostedt
2022-04-29 13:23       ` Steven Rostedt
2022-04-29 13:23       ` Steven Rostedt
2022-04-29 13:46       ` Guilherme G. Piccoli
2022-04-29 13:46         ` Guilherme G. Piccoli
2022-04-29 13:46         ` Guilherme G. Piccoli
2022-04-29 13:46         ` Guilherme G. Piccoli
2022-04-29 13:46         ` Guilherme G. Piccoli
2022-04-29 13:56         ` Steven Rostedt
2022-04-29 13:56           ` Steven Rostedt
2022-04-29 13:56           ` Steven Rostedt
2022-04-29 13:56           ` Steven Rostedt
2022-04-29 13:56           ` Steven Rostedt
2022-04-29 14:44           ` Guilherme G. Piccoli
2022-04-29 14:44             ` Guilherme G. Piccoli
2022-04-29 14:44             ` Guilherme G. Piccoli
2022-04-29 14:44             ` Guilherme G. Piccoli
2022-04-29 14:44             ` Guilherme G. Piccoli
2022-05-11 11:45   ` Petr Mladek
2022-05-11 11:45     ` Petr Mladek
2022-05-11 11:45     ` Petr Mladek
2022-05-11 11:45     ` Petr Mladek
2022-05-11 11:45     ` Petr Mladek
2022-05-17 15:33     ` Guilherme G. Piccoli
2022-05-17 15:33       ` Guilherme G. Piccoli
2022-05-17 15:33       ` Guilherme G. Piccoli
2022-05-17 15:33       ` Guilherme G. Piccoli
2022-05-17 15:33       ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 18/30] notifier: Show function names on notifier routines if DEBUG_NOTIFIERS is set Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-28  1:01   ` Xiaoming Ni
2022-04-28  1:01     ` Xiaoming Ni
2022-04-28  1:01     ` Xiaoming Ni
2022-04-28  1:01     ` Xiaoming Ni
2022-04-28  1:01     ` Xiaoming Ni
2022-04-29 19:38     ` Guilherme G. Piccoli
2022-04-29 19:38       ` Guilherme G. Piccoli
2022-04-29 19:38       ` Guilherme G. Piccoli
2022-04-29 19:38       ` Guilherme G. Piccoli
2022-04-29 19:38       ` Guilherme G. Piccoli
2022-05-10 17:29     ` Steven Rostedt
2022-05-10 17:29       ` Steven Rostedt
2022-05-10 17:29       ` Steven Rostedt
2022-05-10 17:29       ` Steven Rostedt
2022-05-10 17:29       ` Steven Rostedt
2022-05-16 16:14       ` Guilherme G. Piccoli
2022-05-16 16:14         ` Guilherme G. Piccoli
2022-05-16 16:14         ` Guilherme G. Piccoli
2022-05-16 16:14         ` Guilherme G. Piccoli
2022-05-16 16:14         ` Guilherme G. Piccoli
2022-04-29 16:27   ` Michael Kelley (LINUX)
2022-04-29 16:27     ` Michael Kelley (LINUX)
2022-04-29 16:27     ` Michael Kelley
2022-04-29 16:27     ` Michael Kelley (LINUX)
2022-04-27 22:49 ` [PATCH 19/30] panic: Add the panic hypervisor notifier list Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-29 17:30   ` Michael Kelley (LINUX)
2022-04-29 17:30     ` Michael Kelley (LINUX)
2022-04-29 17:30     ` Michael Kelley
2022-04-29 17:30     ` Michael Kelley (LINUX)
2022-04-29 18:04     ` Guilherme G. Piccoli
2022-04-29 18:04       ` Guilherme G. Piccoli
2022-04-29 18:04       ` Guilherme G. Piccoli
2022-04-29 18:04       ` Guilherme G. Piccoli
2022-04-29 18:04       ` Guilherme G. Piccoli
2022-05-03 17:44       ` Michael Kelley (LINUX)
2022-05-03 17:44         ` Michael Kelley (LINUX)
2022-05-03 17:44         ` Michael Kelley
2022-05-03 17:44         ` Michael Kelley (LINUX)
2022-05-03 17:56         ` Guilherme G. Piccoli
2022-05-03 17:56           ` Guilherme G. Piccoli
2022-05-03 17:56           ` Guilherme G. Piccoli
2022-05-03 17:56           ` Guilherme G. Piccoli
2022-05-03 17:56           ` Guilherme G. Piccoli
2022-05-16 14:01   ` Petr Mladek
2022-05-16 14:01     ` Petr Mladek
2022-05-16 14:01     ` Petr Mladek
2022-05-16 14:01     ` Petr Mladek
2022-05-16 14:01     ` Petr Mladek
2022-05-16 15:06     ` Guilherme G. Piccoli
2022-05-16 15:06       ` Guilherme G. Piccoli
2022-05-16 15:06       ` Guilherme G. Piccoli
2022-05-16 15:06       ` Guilherme G. Piccoli
2022-05-16 15:06       ` Guilherme G. Piccoli
2022-05-16 16:02       ` Evan Green
2022-05-16 16:02         ` Evan Green
2022-05-16 16:02         ` Evan Green
2022-05-16 16:02         ` Evan Green
2022-05-16 16:02         ` Evan Green
2022-05-17 13:28         ` Petr Mladek
2022-05-17 13:28           ` Petr Mladek
2022-05-17 13:28           ` Petr Mladek
2022-05-17 13:28           ` Petr Mladek
2022-05-17 13:28           ` Petr Mladek
2022-05-17 16:37           ` Guilherme G. Piccoli
2022-05-17 16:37             ` Guilherme G. Piccoli
2022-05-17 16:37             ` Guilherme G. Piccoli
2022-05-17 16:37             ` Guilherme G. Piccoli
2022-05-17 16:37             ` Guilherme G. Piccoli
2022-05-18  7:33             ` Petr Mladek
2022-05-18  7:33               ` Petr Mladek
2022-05-18  7:33               ` Petr Mladek
2022-05-18  7:33               ` Petr Mladek
2022-05-18 13:24               ` Guilherme G. Piccoli
2022-05-18 13:24                 ` Guilherme G. Piccoli
2022-05-18 13:24                 ` Guilherme G. Piccoli
2022-05-18 13:24                 ` Guilherme G. Piccoli
2022-05-18 13:24                 ` Guilherme G. Piccoli
2022-05-17 13:57       ` Petr Mladek
2022-05-17 13:57         ` Petr Mladek
2022-05-17 13:57         ` Petr Mladek
2022-05-17 13:57         ` Petr Mladek
2022-05-17 13:57         ` Petr Mladek
2022-05-17 16:42         ` Guilherme G. Piccoli
2022-05-17 16:42           ` Guilherme G. Piccoli
2022-05-17 16:42           ` Guilherme G. Piccoli
2022-05-17 16:42           ` Guilherme G. Piccoli
2022-05-17 16:42           ` Guilherme G. Piccoli
2022-05-18  7:38           ` Petr Mladek
2022-05-18  7:38             ` Petr Mladek
2022-05-18  7:38             ` Petr Mladek
2022-05-18  7:38             ` Petr Mladek
2022-05-18  7:38             ` Petr Mladek
2022-05-18 13:09             ` Guilherme G. Piccoli
2022-05-18 13:09               ` Guilherme G. Piccoli
2022-05-18 13:09               ` Guilherme G. Piccoli
2022-05-18 13:09               ` Guilherme G. Piccoli
2022-05-18 13:09               ` Guilherme G. Piccoli
2022-05-18 22:17           ` Scott Branden
2022-05-18 22:17             ` Scott Branden
2022-05-18 22:17             ` Scott Branden
2022-05-18 22:17             ` Scott Branden
2022-05-18 22:17             ` Scott Branden
2022-05-19 12:19             ` Guilherme G. Piccoli
2022-05-19 12:19               ` Guilherme G. Piccoli
2022-05-19 12:19               ` Guilherme G. Piccoli
2022-05-19 12:19               ` Guilherme G. Piccoli
2022-05-19 12:19               ` Guilherme G. Piccoli
2022-05-19 19:20               ` Scott Branden
2022-05-19 19:20                 ` Scott Branden
2022-05-19 19:20                 ` Scott Branden
2022-05-19 19:20                 ` Scott Branden
2022-05-19 19:20                 ` Scott Branden
2022-05-23 14:56                 ` Guilherme G. Piccoli
2022-05-23 14:56                   ` Guilherme G. Piccoli
2022-05-23 14:56                   ` Guilherme G. Piccoli
2022-05-23 14:56                   ` Guilherme G. Piccoli
2022-05-24  8:04                   ` Petr Mladek
2022-05-24  8:04                     ` Petr Mladek
2022-05-24  8:04                     ` Petr Mladek
2022-05-24  8:04                     ` Petr Mladek
2022-05-24  8:04                     ` Petr Mladek
2022-05-18  7:58         ` Petr Mladek
2022-05-18  7:58           ` Petr Mladek
2022-05-18  7:58           ` Petr Mladek
2022-05-18  7:58           ` Petr Mladek
2022-05-18 13:16           ` Guilherme G. Piccoli
2022-05-18 13:16             ` Guilherme G. Piccoli
2022-05-18 13:16             ` Guilherme G. Piccoli
2022-05-18 13:16             ` Guilherme G. Piccoli
2022-05-18 13:16             ` Guilherme G. Piccoli
2022-05-19  7:03             ` Petr Mladek
2022-05-19  7:03               ` Petr Mladek
2022-05-19  7:03               ` Petr Mladek
2022-05-19  7:03               ` Petr Mladek
2022-05-19  7:03               ` Petr Mladek
2022-05-19 12:07               ` Guilherme G. Piccoli
2022-05-19 12:07                 ` Guilherme G. Piccoli
2022-05-19 12:07                 ` Guilherme G. Piccoli
2022-05-19 12:07                 ` Guilherme G. Piccoli
2022-05-19 12:07                 ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 20/30] panic: Add the panic informational " Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 23:49   ` Paul E. McKenney
2022-04-27 23:49     ` Paul E. McKenney
2022-04-27 23:49     ` Paul E. McKenney
2022-04-27 23:49     ` Paul E. McKenney
2022-04-27 23:49     ` Paul E. McKenney
2022-04-28  8:14   ` Suzuki K Poulose
2022-04-28  8:14     ` Suzuki K Poulose
2022-04-28  8:14     ` Suzuki K Poulose
2022-04-28  8:14     ` Suzuki K Poulose
2022-04-28  8:14     ` Suzuki K Poulose
2022-04-29 14:50     ` Guilherme G. Piccoli
2022-04-29 14:50       ` Guilherme G. Piccoli
2022-04-29 14:50       ` Guilherme G. Piccoli
2022-04-29 14:50       ` Guilherme G. Piccoli
2022-04-29 14:50       ` Guilherme G. Piccoli
2022-05-16 14:11   ` Petr Mladek
2022-05-16 14:11     ` Petr Mladek
2022-05-16 14:11     ` Petr Mladek
2022-05-16 14:11     ` Petr Mladek
2022-05-16 14:11     ` Petr Mladek
2022-05-16 14:28     ` Guilherme G. Piccoli
2022-05-16 14:28       ` Guilherme G. Piccoli
2022-05-16 14:28       ` Guilherme G. Piccoli
2022-05-16 14:28       ` Guilherme G. Piccoli
2022-05-16 14:28       ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 21/30] panic: Introduce the panic pre-reboot " Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-28 14:13   ` Alex Elder
2022-04-28 14:13     ` Alex Elder
2022-04-28 14:13     ` Alex Elder
2022-04-28 14:13     ` Alex Elder
2022-04-28 14:13     ` Alex Elder
2022-04-28 16:26   ` Corey Minyard
2022-04-28 16:26     ` Corey Minyard
2022-04-28 16:26     ` Corey Minyard
2022-04-28 16:26     ` Corey Minyard
2022-04-28 16:26     ` Corey Minyard
2022-04-29 15:18     ` Guilherme G. Piccoli
2022-04-29 15:18       ` Guilherme G. Piccoli
2022-04-29 15:18       ` Guilherme G. Piccoli
2022-04-29 15:18       ` Guilherme G. Piccoli
2022-04-29 15:18       ` Guilherme G. Piccoli
2022-04-29 16:04   ` Max Filippov
2022-04-29 16:04     ` Max Filippov
2022-04-29 16:04     ` Max Filippov
2022-04-29 16:04     ` Max Filippov
2022-04-29 16:04     ` Max Filippov
2022-04-29 19:34     ` Guilherme G. Piccoli
2022-04-29 19:34       ` Guilherme G. Piccoli
2022-04-29 19:34       ` Guilherme G. Piccoli
2022-04-29 19:34       ` Guilherme G. Piccoli
2022-04-29 19:34       ` Guilherme G. Piccoli
2022-05-16 14:33   ` Petr Mladek
2022-05-16 14:33     ` Petr Mladek
2022-05-16 14:33     ` Petr Mladek
2022-05-16 14:33     ` Petr Mladek
2022-05-16 14:33     ` Petr Mladek
2022-05-16 16:05     ` Guilherme G. Piccoli
2022-05-16 16:05       ` Guilherme G. Piccoli
2022-05-16 16:05       ` Guilherme G. Piccoli
2022-05-16 16:05       ` Guilherme G. Piccoli
2022-05-16 16:05       ` Guilherme G. Piccoli
2022-05-16 16:18       ` Luck, Tony
2022-05-16 16:18         ` Luck, Tony
2022-05-16 16:18         ` Luck, Tony
2022-05-16 16:18         ` Luck, Tony
2022-05-16 16:18         ` Luck, Tony
2022-05-16 16:33         ` Guilherme G. Piccoli
2022-05-16 16:33           ` Guilherme G. Piccoli
2022-05-16 16:33           ` Guilherme G. Piccoli
2022-05-16 16:33           ` Guilherme G. Piccoli
2022-05-16 16:33           ` Guilherme G. Piccoli
2022-05-17 14:11           ` Petr Mladek
2022-05-17 14:11             ` Petr Mladek via Openipmi-developer
2022-05-17 14:11             ` Petr Mladek
2022-05-17 14:11             ` Petr Mladek
2022-05-17 14:11             ` Petr Mladek
2022-05-17 16:45             ` Guilherme G. Piccoli
2022-05-17 16:45               ` Guilherme G. Piccoli
2022-05-17 16:45               ` Guilherme G. Piccoli
2022-05-17 16:45               ` Guilherme G. Piccoli
2022-05-17 16:45               ` Guilherme G. Piccoli
2022-05-17 17:02               ` Luck, Tony
2022-05-17 17:02                 ` Luck, Tony
2022-05-17 17:02                 ` Luck, Tony
2022-05-17 17:02                 ` Luck, Tony
2022-05-17 17:02                 ` Luck, Tony
2022-05-17 18:12                 ` Guilherme G. Piccoli
2022-05-17 18:12                   ` Guilherme G. Piccoli
2022-05-17 18:12                   ` Guilherme G. Piccoli
2022-05-17 18:12                   ` Guilherme G. Piccoli
2022-05-17 18:12                   ` Guilherme G. Piccoli
2022-05-17 19:07                   ` Luck, Tony
2022-05-17 19:07                     ` Luck, Tony
2022-05-17 19:07                     ` Luck, Tony
2022-05-17 19:07                     ` Luck, Tony
2022-05-17 19:07                     ` Luck, Tony
2022-04-27 22:49 ` [PATCH 22/30] panic: Introduce the panic post-reboot " Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-09 14:16   ` Guilherme G. Piccoli
2022-05-09 14:16     ` Guilherme G. Piccoli
2022-05-09 14:16     ` Guilherme G. Piccoli
2022-05-09 14:16     ` Guilherme G. Piccoli
2022-05-09 14:16     ` Guilherme G. Piccoli
2022-05-11 16:45     ` Heiko Carstens
2022-05-11 16:45       ` Heiko Carstens
2022-05-11 16:45       ` Heiko Carstens
2022-05-11 16:45       ` Heiko Carstens
2022-05-11 16:45       ` Heiko Carstens
2022-05-11 19:58       ` Guilherme G. Piccoli
2022-05-11 19:58         ` Guilherme G. Piccoli
2022-05-11 19:58         ` Guilherme G. Piccoli
2022-05-11 19:58         ` Guilherme G. Piccoli
2022-05-11 19:58         ` Guilherme G. Piccoli
2022-05-16 14:45   ` Petr Mladek
2022-05-16 14:45     ` Petr Mladek
2022-05-16 14:45     ` Petr Mladek
2022-05-16 14:45     ` Petr Mladek
2022-05-16 14:45     ` Petr Mladek
2022-05-16 16:08     ` Guilherme G. Piccoli
2022-05-16 16:08       ` Guilherme G. Piccoli
2022-05-16 16:08       ` Guilherme G. Piccoli
2022-05-16 16:08       ` Guilherme G. Piccoli
2022-05-16 16:08       ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 23/30] printk: kmsg_dump: Introduce helper to inform number of dumpers Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-10 17:40   ` Steven Rostedt
2022-05-10 17:40     ` Steven Rostedt
2022-05-10 17:40     ` Steven Rostedt
2022-05-10 17:40     ` Steven Rostedt
2022-05-10 17:40     ` Steven Rostedt
2022-05-11 20:03     ` Guilherme G. Piccoli
2022-05-11 20:03       ` Guilherme G. Piccoli
2022-05-11 20:03       ` Guilherme G. Piccoli
2022-05-11 20:03       ` Guilherme G. Piccoli
2022-05-11 20:03       ` Guilherme G. Piccoli
2022-05-16 14:50       ` Petr Mladek
2022-05-16 14:50         ` Petr Mladek
2022-05-16 14:50         ` Petr Mladek
2022-05-16 14:50         ` Petr Mladek
2022-05-16 14:50         ` Petr Mladek
2022-05-16 16:09         ` Guilherme G. Piccoli
2022-05-16 16:09           ` Guilherme G. Piccoli
2022-05-16 16:09           ` Guilherme G. Piccoli
2022-05-16 16:09           ` Guilherme G. Piccoli
2022-05-16 16:09           ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 24/30] panic: Refactor the panic path Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-28  0:28   ` Randy Dunlap
2022-04-28  0:28     ` Randy Dunlap
2022-04-28  0:28     ` Randy Dunlap
2022-04-28  0:28     ` Randy Dunlap
2022-04-28  0:28     ` Randy Dunlap
2022-04-29 16:04     ` Guilherme G. Piccoli
2022-04-29 16:04       ` Guilherme G. Piccoli
2022-04-29 16:04       ` Guilherme G. Piccoli
2022-04-29 16:04       ` Guilherme G. Piccoli
2022-04-29 16:04       ` Guilherme G. Piccoli
2022-05-09 14:25       ` Guilherme G. Piccoli
2022-05-09 14:25         ` Guilherme G. Piccoli
2022-05-09 14:25         ` Guilherme G. Piccoli
2022-05-09 14:25         ` Guilherme G. Piccoli
2022-05-09 14:25         ` Guilherme G. Piccoli
2022-04-29 17:53   ` Michael Kelley (LINUX)
2022-04-29 17:53     ` Michael Kelley (LINUX)
2022-04-29 17:53     ` Michael Kelley
2022-04-29 17:53     ` Michael Kelley (LINUX)
2022-04-29 20:38     ` Guilherme G. Piccoli
2022-04-29 20:38       ` Guilherme G. Piccoli
2022-04-29 20:38       ` Guilherme G. Piccoli
2022-04-29 20:38       ` Guilherme G. Piccoli
2022-04-29 20:38       ` Guilherme G. Piccoli
2022-05-03 17:31       ` Michael Kelley (LINUX)
2022-05-03 17:31         ` Michael Kelley (LINUX)
2022-05-03 17:31         ` Michael Kelley
2022-05-03 17:31         ` Michael Kelley (LINUX)
2022-05-03 18:06         ` Guilherme G. Piccoli
2022-05-03 18:06           ` Guilherme G. Piccoli
2022-05-03 18:06           ` Guilherme G. Piccoli
2022-05-03 18:06           ` Guilherme G. Piccoli
2022-05-03 18:06           ` Guilherme G. Piccoli
2022-05-09 15:16   ` d.hatayama
2022-05-09 15:16     ` d.hatayama
2022-05-09 15:16     ` d.hatayama
2022-05-09 15:16     ` d.hatayama
2022-05-09 15:16     ` d.hatayama
2022-05-09 16:39     ` Guilherme G. Piccoli
2022-05-09 16:39       ` Guilherme G. Piccoli
2022-05-09 16:39       ` Guilherme G. Piccoli
2022-05-09 16:39       ` Guilherme G. Piccoli
2022-05-09 16:39       ` Guilherme G. Piccoli
2022-05-12 14:03   ` Petr Mladek
2022-05-12 14:03     ` Petr Mladek
2022-05-12 14:03     ` Petr Mladek
2022-05-12 14:03     ` Petr Mladek
2022-05-12 14:03     ` Petr Mladek
2022-05-15 22:47     ` Guilherme G. Piccoli
2022-05-15 22:47       ` Guilherme G. Piccoli
2022-05-15 22:47       ` Guilherme G. Piccoli
2022-05-15 22:47       ` Guilherme G. Piccoli
2022-05-15 22:47       ` Guilherme G. Piccoli
2022-05-16 10:21       ` Petr Mladek
2022-05-16 10:21         ` Petr Mladek
2022-05-16 10:21         ` Petr Mladek
2022-05-16 10:21         ` Petr Mladek
2022-05-16 10:21         ` Petr Mladek
2022-05-16 16:32         ` Guilherme G. Piccoli
2022-05-16 16:32           ` Guilherme G. Piccoli
2022-05-16 16:32           ` Guilherme G. Piccoli
2022-05-16 16:32           ` Guilherme G. Piccoli
2022-05-16 16:32           ` Guilherme G. Piccoli
2022-05-19 23:45       ` Baoquan He
2022-05-19 23:45         ` Baoquan He
2022-05-19 23:45         ` Baoquan He
2022-05-19 23:45         ` Baoquan He
2022-05-19 23:45         ` Baoquan He
2022-05-20 11:23         ` Guilherme G. Piccoli
2022-05-20 11:23           ` Guilherme G. Piccoli
2022-05-20 11:23           ` Guilherme G. Piccoli
2022-05-20 11:23           ` Guilherme G. Piccoli
2022-05-20 11:23           ` Guilherme G. Piccoli
2022-05-24  8:01           ` Petr Mladek
2022-05-24  8:01             ` Petr Mladek
2022-05-24  8:01             ` Petr Mladek
2022-05-24  8:01             ` Petr Mladek
2022-05-24  8:01             ` Petr Mladek
2022-05-24 10:18             ` Baoquan He
2022-05-24 10:18               ` Baoquan He
2022-05-24 10:18               ` Baoquan He
2022-05-24 10:18               ` Baoquan He
2022-05-24 10:18               ` Baoquan He
2022-05-24  8:32           ` Baoquan He
2022-05-24  8:32             ` Baoquan He
2022-05-24  8:32             ` Baoquan He
2022-05-24  8:32             ` Baoquan He
2022-05-24  8:32             ` Baoquan He
2022-05-24 14:44   ` Eric W. Biederman
2022-05-24 14:44     ` Eric W. Biederman
2022-05-24 14:44     ` Eric W. Biederman
2022-05-24 14:44     ` Eric W. Biederman
2022-05-24 14:44     ` Eric W. Biederman
2022-05-26 16:25     ` Guilherme G. Piccoli [this message]
2022-05-26 16:25       ` Guilherme G. Piccoli
2022-05-26 16:25       ` Guilherme G. Piccoli
2022-05-26 16:25       ` Guilherme G. Piccoli
2022-05-26 16:25       ` Guilherme G. Piccoli
2022-06-14 14:36       ` Petr Mladek
2022-06-14 14:36         ` Petr Mladek
2022-06-14 14:36         ` Petr Mladek
2022-06-14 14:36         ` Petr Mladek
2022-06-14 14:36         ` Petr Mladek
2022-06-15  9:36         ` Guilherme G. Piccoli
2022-06-15  9:36           ` Guilherme G. Piccoli
2022-06-15  9:36           ` Guilherme G. Piccoli
2022-06-15  9:36           ` Guilherme G. Piccoli
2022-06-15  9:36           ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 25/30] panic, printk: Add console flush parameter and convert panic_print to a notifier Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-16 14:56   ` Petr Mladek
2022-05-16 14:56     ` Petr Mladek
2022-05-16 14:56     ` Petr Mladek
2022-05-16 14:56     ` Petr Mladek
2022-05-16 14:56     ` Petr Mladek
2022-05-16 16:11     ` Guilherme G. Piccoli
2022-05-16 16:11       ` Guilherme G. Piccoli
2022-05-16 16:11       ` Guilherme G. Piccoli
2022-05-16 16:11       ` Guilherme G. Piccoli
2022-05-16 16:11       ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 26/30] Drivers: hv: Do not force all panic notifiers to execute before kdump Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 27/30] powerpc: " Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 28/30] panic: Unexport crash_kexec_post_notifiers Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 29/30] powerpc: ps3, pseries: Avoid duplicate call to kmsg_dump() on panic Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49 ` [PATCH 30/30] um: Avoid duplicate call to kmsg_dump() Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-04-27 22:49   ` Guilherme G. Piccoli
2022-05-24 11:08 ` (subset) [PATCH 00/30] The panic notifiers refactor Michael Ellerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0d084eed-4781-c815-29c7-ac62c498e216@igalia.com \
    --to=gpiccoli@igalia.com \
    --cc=akpm@linux-foundation.org \
    --cc=alejandro.j.jimenez@oracle.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bhe@redhat.com \
    --cc=bp@alien8.de \
    --cc=corbet@lwn.net \
    --cc=d.hatayama@jp.fujitsu.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=dyoung@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=fabiomirmar@gmail.com \
    --cc=feng.tang@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=halves@canonical.com \
    --cc=hidehiro.kawai.ez@hitachi.com \
    --cc=jgross@suse.com \
    --cc=john.ogness@linutronix.de \
    --cc=keescook@chromium.org \
    --cc=kernel-dev@igalia.com \
    --cc=kernel@gpiccoli.net \
    --cc=kexec@lists.infradead.org \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=linux-xtensa@linux-xtensa.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=luto@kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mhiramat@kernel.org \
    --cc=mikelley@microsoft.com \
    --cc=mingo@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=openipmi-developer@lists.sourceforge.net \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=pmladek@suse.com \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=senozhatsky@chromium.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    --cc=tglx@linutronix.de \
    --cc=vgoyal@redhat.com \
    --cc=vkuznets@redhat.com \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.