lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aMGenGUNcBbRUUf9@pathway.suse.cz>
Date: Wed, 10 Sep 2025 17:51:56 +0200
From: Petr Mladek <pmladek@...e.com>
To: Calvin Owens <calvin@...nvd.org>
Cc: John Ogness <john.ogness@...utronix.de>,
	Breno Leitao <leitao@...ian.org>, Mike Galbraith <efault@....de>,
	Simon Horman <horms@...nel.org>, kuba@...nel.org,
	Pavel Begunkov <asml.silence@...il.com>,
	Johannes Berg <johannes@...solutions.net>, paulmck@...nel.org,
	LKML <linux-kernel@...r.kernel.org>, netdev@...r.kernel.org,
	boqun.feng@...il.com
Subject: Re: netconsole: HARDIRQ-safe -> HARDIRQ-unsafe lock order warning

On Mon 2025-09-08 13:27:05, Calvin Owens wrote:
> On Friday 09/05 at 14:54 +0206, John Ogness wrote:
> > <snip>
> >
> > NBCON is meant to deprecate @oops_in_progress. However, it is true that
> > consoles not implementing ->write_atomic() will never print panic
> > output.
> 
> Below is a silly little testcase that makes it more convenient to test
> if crashes are getting out in a few canned cases, in case anyone else
> finds it useful.
> 
> Testing this on 6.17-rc5 on a Pi 4b, I don't get any netconsole output
> at all for any crash case over wifi, so that already doesn't work. All
> the cases currently work over ethernet.

I like this test module. IMHO, it would make sense to get it upstream.
What do you think?

Some comments below.

> ----8<----
> From: Calvin Owens <calvin@...nvd.org>
> Subject: [PATCH] Quick and dirty testcase for netconsole (and other consoles)
> 
> Signed-off-by: Calvin Owens <calvin@...nvd.org>
> ---
>  drivers/tty/Kconfig     |   9 ++
>  drivers/tty/Makefile    |   1 +
>  drivers/tty/crashtest.c | 178 ++++++++++++++++++++++++++++++++++++++++

I would put it into lib/test_crash.c. It is similar to
the existing lib/test_lockup.c

> --- /dev/null
> +++ b/drivers/tty/crashtest.c
> @@ -0,0 +1,178 @@
[...]
> +
> +static ssize_t __crash(void)
> +{
> +	pr_emerg("BANG!\n");
> +	*(volatile unsigned char *)NULL = '!';
> +	return -ENOSYS;

I would use similar trick as SysRq-c and call panic() directly,
see sysrq_handle_crash(). Something like:

static void __crash(const char *context)
{
	panic(Triggered crash in context: %s\n");
}

> +}
> +
> +static void __crash_irq_work(struct irq_work *work)
> +{
> +	__crash();

and call it like:

	__crash("irq");

> +}
> +
> +static int __init setup_crashtest(void)
> +{
> +	INIT_WORK(&bh_crash_work, __crash_bh_work);
> +	init_irq_work(&irq_crash_work, __crash_irq_work);
> +	crashtest_dentry = debugfs_create_file("crashtest", 0600, NULL, NULL,
> +					       &crashtest_fops);

Match it with the module name: test_crash.

Maybe, do "sed -e s/crashtest/test_crash/g".

> +	if (IS_ERR(crashtest_dentry))
> +		return PTR_ERR(crashtest_dentry);
> +
> +	return 0;
> +}

Best Regards,
Petr

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ