From nobody Sat May 3 15:20:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgb12Gsz5vTCv; Sat, 03 May 2025 15:20:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgZ5Fh5z3LFF; Sat, 03 May 2025 15:20:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285610; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O9thXtfZNaTFvuWTF8meQ8D4j+0B4gewxLwdv7nCjJs=; b=Zmkdg8jaPp/ITpbJjmhGFubQxR2XUjYgv+uL0eEk3/U3NFqEpUtNDfSOYtuGGExl0Mz/sK fLIvQrv5ruxRWFZ1Xyx7h0FINzrQ/Ju49VM1jegl3ZynPmkDWpwTLMr+xAqWhDqtpmSobb UHwkpZN5aIivwMODBIkClT9L01OxOwGWZw19BRJBaQUHbai41UOJ3NOs/R3WmEkHQ5yEWK cuYy85yoeDYwOWAS3Y0ncGB8B15dg73VAl3RJiaNJUan6TkLsYgr4okQbPE+lc2TMvQhO7 0CCeTAbJZGSmxu5OjN9Z+lJqLrQvJgSUaBs09fnG1279ZKlLktR6GRW2uOXJbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285610; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O9thXtfZNaTFvuWTF8meQ8D4j+0B4gewxLwdv7nCjJs=; b=EOeIie9m22FMWju5UN1OzM8Bv51rPVUhuuXbFEPeNIO8BdzUJYVO56UELKXL8BXTZtfTV1 sNTrbB9CJDc6F4FxbFwxv7MVIteTbEfhetXEQndj3PrvslwCgsIINTkSCwICXoXBKbQDXS RQ57ahUklGfJlHACv/zX/aTicpHjm2EvbkKcBXyjxTMlJ1DaRre4pWYUnMMU1tlOXTikxz tLtrBPntOv4wKclM8MuEcZNfVBaetcPK7VfCJECRJU1MIvQ+65gibo3Ff5irPd5jrJtbTV NNdY0hqy+QjlxhFxjl8kgbltz1URJh7atthZNoHxpGNDxZ3SMijfO+rZRv1blw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285610; a=rsa-sha256; cv=none; b=JlECrq5uKSKr+algSawyXRrpyyq+mtsq486BxYNR9kzoXDxMbdb6pKZxeoVbkxAkjnezL4 /GFsa48DlPWogTzRZdzMb4VbHwheOPRwRrGw4WGDUZz2vKvySfcZHJuOLWqKQgM/6URpi/ uTVBXBcUgM+cGyhssWvukvayTWpa2yASaR5hD6ML8y7MtCxG/QmpWT2iH/RJgvWppM0LKW yorxrBPRlD2yEFlLVXoy+SVV+nuPcD+YaKLKc0abtlHViyqAtwGUxtxbtwGnKGpkEQ1XDf twNasy9Ipn+Phg7rw+mXc871iDEAcMq0zgPmcqIG6mrU3ISyB/uqzqmqlyQdxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqWgZ4nCQznwn; Sat, 03 May 2025 15:20:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FKA6e050702; Sat, 3 May 2025 15:20:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FKAZZ050691; Sat, 3 May 2025 15:20:10 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:10 GMT Message-Id: <202505031520.543FKAZZ050691@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 64a8ac8c63d3 - stable/14 - amd64: make LA57 mode for a process opt-in by default List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 64a8ac8c63d3b84b5da8042e5e314aa7938f5b10 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=64a8ac8c63d3b84b5da8042e5e314aa7938f5b10 commit 64a8ac8c63d3b84b5da8042e5e314aa7938f5b10 Author: Konstantin Belousov AuthorDate: 2025-04-19 10:55:18 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 amd64: make LA57 mode for a process opt-in by default (cherry picked from commit 7a8440bf0894f910f871e91a660a9f66dbb23f0b) --- sys/amd64/amd64/elf_machdep.c | 4 +++- sys/amd64/amd64/pmap.c | 9 +++++++++ sys/amd64/include/md_var.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sys/amd64/amd64/elf_machdep.c b/sys/amd64/amd64/elf_machdep.c index fc25decc64a2..e45d45860c9c 100644 --- a/sys/amd64/amd64/elf_machdep.c +++ b/sys/amd64/amd64/elf_machdep.c @@ -171,11 +171,13 @@ freebsd_brand_info_la57_img_compat(struct image_params *imgp, { if ((imgp->proc->p_md.md_flags & P_MD_LA57) != 0) return (true); + if (fctl0 != NULL && (*fctl0 & NT_FREEBSD_FCTL_LA57) != 0) + return (true); if (fctl0 == NULL || (*fctl0 & NT_FREEBSD_FCTL_LA48) != 0) return (false); if ((imgp->proc->p_md.md_flags & P_MD_LA48) != 0) return (false); - return (true); + return (!prefer_uva_la48); } static Elf64_Brandinfo freebsd_brand_info_la48 = { diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 406ff7744e5b..1456cee62aeb 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -433,6 +433,15 @@ SYSCTL_INT(_vm_pmap, OID_AUTO, la57, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, &la57, 0, "5-level paging for host is enabled"); +/* + * The default value is needed in order to preserve compatibility with + * some userspace programs that put tags into sign-extended bits. + */ +int prefer_uva_la48 = 1; +SYSCTL_INT(_vm_pmap, OID_AUTO, prefer_uva_la48, CTLFLAG_RDTUN, + &prefer_uva_la48, 0, + "Userspace maps are limited to LA48 unless otherwise configured"); + static bool pmap_is_la57(pmap_t pmap) { diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h index ce6f05fa1739..b6ddc6eaaebe 100644 --- a/sys/amd64/include/md_var.h +++ b/sys/amd64/include/md_var.h @@ -50,6 +50,7 @@ extern vm_paddr_t intel_graphics_stolen_base; extern vm_paddr_t intel_graphics_stolen_size; extern int la57; +extern int prefer_uva_la48; extern vm_paddr_t kernphys; extern vm_paddr_t KERNend;