linux-um.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Tiwei Bie <tiwei.bie@linux.dev>
To: richard@nod.at, anton.ivanov@cambridgegreys.com,
	johannes@sipsolutions.net
Cc: linux-um@lists.infradead.org, linux-kernel@vger.kernel.org,
	benjamin@sipsolutions.net, arnd@arndb.de, tiwei.btw@antgroup.com,
	tiwei.bie@linux.dev
Subject: [PATCH v2 10/10] um: Enable SMP support on x86
Date: Sun, 10 Aug 2025 13:51:36 +0800	[thread overview]
Message-ID: <20250810055136.897712-11-tiwei.bie@linux.dev> (raw)
In-Reply-To: <20250810055136.897712-1-tiwei.bie@linux.dev>

From: Tiwei Bie <tiwei.btw@antgroup.com>

Implement spinlock support for SMP on UML/x86, leveraging x86's
spinlock implementation. In addition, to support SMP on CPUs that
do not support CX8, some additional work is required. However,
considering that such CPUs are already very outdated, and x86 is
also removing support for them [1], let's enable SMP support only
on CPUs that support CX8.

[1] https://lore.kernel.org/lkml/20250515085708.2510123-1-mingo@kernel.org/

Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com>
---
 arch/x86/um/Kconfig        | 3 +++
 arch/x86/um/asm/spinlock.h | 8 ++++++++
 2 files changed, 11 insertions(+)
 create mode 100644 arch/x86/um/asm/spinlock.h

diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig
index 986045d5e638..c52fb5cb8d21 100644
--- a/arch/x86/um/Kconfig
+++ b/arch/x86/um/Kconfig
@@ -9,8 +9,11 @@ endmenu
 config UML_X86
 	def_bool y
 	select ARCH_BINFMT_ELF_EXTRA_PHDRS if X86_32
+	select ARCH_USE_QUEUED_RWLOCKS
+	select ARCH_USE_QUEUED_SPINLOCKS
 	select DCACHE_WORD_ACCESS
 	select HAVE_EFFICIENT_UNALIGNED_ACCESS
+	select UML_SUBARCH_SUPPORTS_SMP if X86_CX8
 
 config 64BIT
 	bool "64-bit kernel" if "$(SUBARCH)" = "x86"
diff --git a/arch/x86/um/asm/spinlock.h b/arch/x86/um/asm/spinlock.h
new file mode 100644
index 000000000000..20fc77514214
--- /dev/null
+++ b/arch/x86/um/asm/spinlock.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_UM_SPINLOCK_H
+#define __ASM_UM_SPINLOCK_H
+
+#include <asm/qspinlock.h>
+#include <asm/qrwlock.h>
+
+#endif /* __ASM_UM_SPINLOCK_H */
-- 
2.34.1



      parent reply	other threads:[~2025-08-10  5:52 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-10  5:51 [PATCH v2 00/10] um: Add SMP support Tiwei Bie
2025-08-10  5:51 ` [PATCH v2 01/10] um: Stop tracking virtual CPUs via mm_cpumask() Tiwei Bie
2025-08-10  5:51 ` [PATCH v2 02/10] um: Remove unused cpu_data and current_cpu_data macros Tiwei Bie
2025-08-10  5:51 ` [PATCH v2 03/10] um: vdso: Implement __vdso_getcpu() via syscall Tiwei Bie
2025-08-10  5:51 ` [PATCH v2 04/10] um: Turn signals_* into thread-local variables Tiwei Bie
2025-08-10  5:51 ` [PATCH v2 05/10] um: Determine sleep based on need_resched() Tiwei Bie
2025-08-10  5:51 ` [PATCH v2 06/10] um: Define timers on a per-CPU basis Tiwei Bie
2025-08-10  9:49   ` kernel test robot
2025-08-10  5:51 ` [PATCH v2 07/10] um: Remove unused ipi_pipe field from cpuinfo_um Tiwei Bie
2025-08-10  5:51 ` [PATCH v2 08/10] um: Add initial SMP support Tiwei Bie
2025-08-10  5:51 ` [PATCH v2 09/10] asm-generic: percpu: Add assembly guard Tiwei Bie
2025-08-10  5:51 ` Tiwei Bie [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250810055136.897712-11-tiwei.bie@linux.dev \
    --to=tiwei.bie@linux.dev \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=arnd@arndb.de \
    --cc=benjamin@sipsolutions.net \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=richard@nod.at \
    --cc=tiwei.btw@antgroup.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).