[PATCH v4] um: Enable preemption in UML

Anton Ivanov anton.ivanov at cambridgegreys.com
Thu Sep 21 14:41:16 PDT 2023


On 21/09/2023 22:02, Richard Weinberger wrote:
> ----- Ursprüngliche Mail -----
>> Von: "anton ivanov" <anton.ivanov at cambridgegreys.com>
>> An: "linux-um" <linux-um at lists.infradead.org>
>> CC: "Johannes Berg" <johannes at sipsolutions.net>, "richard" <richard at nod.at>, "anton ivanov"
>> <anton.ivanov at cambridgegreys.com>
>> Gesendet: Donnerstag, 21. September 2023 17:55:22
>> Betreff: [PATCH v4] um: Enable preemption in UML
>> From: Anton Ivanov <anton.ivanov at 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/




More information about the linux-um mailing list