On 21/09/2023 22:02, Richard Weinberger wrote:
----- Ursprüngliche Mail -----
Von: "anton ivanov" <anton.iva...@cambridgegreys.com>
An: "linux-um" <linux-um@lists.infradead.org>
CC: "Johannes Berg" <johan...@sipsolutions.net>, "richard" <rich...@nod.at>, "anton
ivanov"
<anton.iva...@cambridgegreys.com>
Gesendet: Donnerstag, 21. September 2023 17:55:22
Betreff: [PATCH v4] um: Enable preemption in UML
From: Anton Ivanov <anton.iva...@cambridgegreys.com>
Preemption requires saving/restoring FPU state. This patch
adds support for it using GCC intrinsics.
This patch triggers here the following splat:
Ack. I will look into it tomorrow.
There will be places where it will bomb out. F.E. I am chasing one is
triggered by the NFS server (it may be the same as in this trace - it
happens around the end of the initial setup).
All in all it looks better than I expected.
defconfig + vector + nfs client + CONFIG_PREEMPT - I had the kernel
build without any issues from a source tree on NFS and with reasonable
performance too.
------------[ cut here ]------------
WARNING: CPU: 0 PID: 0 at init/main.c:992 start_kernel+0x541/0x6b6
Interrupts were enabled early
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.0-rc2-ga74d8f8592e5 #128
Stack:
60381b94 00000001 604d3d80 6002b6f6
60444bdd 00000001 604d3e20 6037ecfa
604d3db0 60389b2f 604d3da0 60381b94
Call Trace:
[<60381b94>] ? _printk+0x0/0x94
[<600212b1>] show_stack+0x13c/0x14b
[<60381b94>] ? _printk+0x0/0x94
[<6002b6f6>] ? um_set_signals+0x0/0x3f
[<6037ecfa>] ? sprintf+0x0/0x95
[<60389b2f>] dump_stack_lvl+0x4d/0x5a
[<60381b94>] ? _printk+0x0/0x94
[<60389b56>] dump_stack+0x1a/0x1c
[<60033ebc>] __warn+0xd9/0x109
[<60033fbd>] warn_slowpath_fmt+0xd1/0xdf
[<60033eec>] ? warn_slowpath_fmt+0x0/0xdf
[<60381b94>] ? _printk+0x0/0x94
[<60050e2c>] ? __blocking_notifier_chain_register+0x33/0x78
[<60381b94>] ? _printk+0x0/0x94
[<60050e83>] ? blocking_notifier_chain_register+0x12/0x14
[<6005fa92>] ? register_pm_notifier+0x1d/0x1f
[<600152c9>] ? random_init+0xc2/0x126
[<60381b94>] ? _printk+0x0/0x94
[<60001c40>] start_kernel+0x541/0x6b6
[<6004deb0>] ? parse_args+0x0/0x2b9
[<6002b609>] ? block_signals+0x0/0x16
[<60003b9d>] start_kernel_proc+0x49/0x4d
[<60061863>] ? kmsg_dump_register+0x6d/0x75
[<6001ffdb>] new_thread_handler+0x81/0xb2
[<60003b52>] ? kmsg_dumper_stdout_init+0x1a/0x1c
[<60022e52>] uml_finishsetup+0x54/0x59
---[ end trace 0000000000000000 ]---
x86_64 defconfig + CONFIG_PREEMPT_VOLUNTARY=y
Thanks,
//richard
--
Anton R. Ivanov
Cambridgegreys Limited. Registered in England. Company Number 10273661
https://www.cambridgegreys.com/
_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um