Hi Greg, Arnd, and Daniel, > > > > > There is some prior art for this sort of feature. AFAICT SGI UV has a > > > > > similar mechanism that can send an NMI-with-no-side-channel to the > > > > > kernel. The corresponding driver offers a range of actions using a > > > > > module parameter: > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/platform/uv/uv_nmi.c#n180 > > > > > > > > > > I don't think a hardcoded 'c' makes any sense. With a hardcoded argument > > > > > it is just obfuscation. However it is certainly seems attractive to be > > > > > able to reuse handle_sysrq() to provide a more powerful set of actions. > > > > > > > > How about a module parameter that allows picking a sysrq character then? > > > > > > Module parameters are so 1990, as this is a platform device, why not get > > > it from DT? > > > > This machine doesn't use DT. I suppose the same could be done with an EFI > > variable, but with a module parameter you get the added benefit of having both > > a boot time kernel command line argument, and the option to override it at > > run time. > > Pushing the decision on what action to take into firmware (whether that > is DT or ACPI) implies that the firmware is well positioned to make a > decision. I don't think that is true here. > > To me, it seems more like an admin choice... and admins are conditioned > to use kernel arguments. > > If these type of diagnostics request were more common then perhaps we'd > be looking at a sysctl and call to handle_diagnostic_sysrq(). I understand that it is not appropriate to hardcode c. How about using __setup() to add a new kernel parameter and allow the admin to specify the sysrq command when booting? Thank you Hitomi Hasegawa