]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
um: Add initial SMP support
authorTiwei Bie <tiwei.btw@antgroup.com>
Mon, 27 Oct 2025 00:18:12 +0000 (08:18 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 27 Oct 2025 15:41:15 +0000 (16:41 +0100)
commit1e4ee5135d814fe4785890790cec81c3132888fb
treeb88d4e37829af3c801081a25d2a08ce23600f59c
parent9c82de55d4783e906f18219f833ad97fd8d9c5df
um: Add initial SMP support

Add initial symmetric multi-processing (SMP) support to UML. With
this support enabled, users can tell UML to start multiple virtual
processors, each represented as a separate host thread.

In UML, kthreads and normal threads (when running in kernel mode)
can be scheduled and executed simultaneously on different virtual
processors. However, the userspace code of normal threads still
runs within their respective single-threaded stubs.

That is, SMP support is currently available both within the kernel
and across different processes, but still remains limited within
threads of the same process in userspace.

Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com>
Link: https://patch.msgid.link/20251027001815.1666872-6-tiwei.bie@linux.dev
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
29 files changed:
Documentation/features/core/generic-idle-thread/arch-support.txt
arch/um/Kconfig
arch/um/include/asm/current.h
arch/um/include/asm/hardirq.h
arch/um/include/asm/mmu.h
arch/um/include/asm/pgtable.h
arch/um/include/asm/smp.h
arch/um/include/linux/smp-internal.h [new file with mode: 0644]
arch/um/include/shared/os.h
arch/um/include/shared/skas/mm_id.h
arch/um/include/shared/skas/skas.h
arch/um/include/shared/smp.h [new file with mode: 0644]
arch/um/kernel/Makefile
arch/um/kernel/irq.c
arch/um/kernel/process.c
arch/um/kernel/skas/mmu.c
arch/um/kernel/skas/process.c
arch/um/kernel/smp.c [new file with mode: 0644]
arch/um/kernel/tlb.c
arch/um/kernel/trap.c
arch/um/kernel/um_arch.c
arch/um/os-Linux/Makefile
arch/um/os-Linux/internal.h
arch/um/os-Linux/process.c
arch/um/os-Linux/signal.c
arch/um/os-Linux/skas/process.c
arch/um/os-Linux/smp.c [new file with mode: 0644]
arch/um/os-Linux/start_up.c
arch/um/os-Linux/time.c