From: Keno Fischer <keno@juliacomputing.com>
To: mtk.manpages@gmail.com
Cc: linux-man@vger.kernel.org
Subject: [PATCH] arch_prctl.2: Add ARCH_SET_CPUID subcommand
Date: Sun, 15 Mar 2020 23:21:27 -0400 [thread overview]
Message-ID: <20200316032127.GA4619@juliacomputing.com> (raw)
This subcommand was added a few years ago to support cpuid emulation
on x86 targets, but no changes to the man page appear to have been
made at the time. This commit adds a description for it and the
corresponding getter.
Signed-off-by: Keno Fischer <keno@juliacomputing.com>
---
man2/arch_prctl.2 | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/man2/arch_prctl.2 b/man2/arch_prctl.2
index c49f4e0..e40d6bb 100644
--- a/man2/arch_prctl.2
+++ b/man2/arch_prctl.2
@@ -48,7 +48,44 @@ for the "set" operations, or as an
.IR "unsigned long\ *" ,
for the "get" operations.
.PP
-Subfunctions for x86-64 are:
+Subfunctions for both x86 and x86-64 are:
+.TP
+.BR ARCH_SET_CPUID " (since Linux 4.12)"
+Enable (
+.I addr != 0
+) or disable (
+.I addr == 0
+) the
+.I cpuid
+instruction for the current thread. The instruction
+is enabled by default. If disabled,
+any execution of a
+.I cpuid
+instruction will instead generate a
+.B SIGSEGV
+signal. This feature can be used to emulate
+.I cpuid
+results that differ from what the underlying
+hardware would have produced (e.g. in a paravirtualization setting).
+This setting is preserved across
+.BR fork (2)
+and
+.BR clone (2)
+but reset to default (i.e.
+.I cpuid
+enabled) on
+.BR execve (2)
+.
+.TP
+.BR ARCH_GET_CPUID " (since Linux 4.12)"
+Return the setting of the flag manipulated by
+.B ARCH_SET_CPUID
+as the result of the system call (1 for enabled, 0 for disabled).
+.I addr
+is ignored.
+
+.TP
+Subfunctions for x86-64 only are:
.TP
.B ARCH_SET_FS
Set the 64-bit base for the
@@ -96,6 +133,10 @@ is not a valid subcommand.
.B EPERM
.I addr
is outside the process address space.
+.TP
+.B ENODEV
+.B ARCH_SET_CPUID
+was requested, but the underlying hardware does not support CPUID faulting.
.\" .SH AUTHOR
.\" Man page written by Andi Kleen.
.SH CONFORMING TO
--
2.8.1
next reply other threads:[~2020-03-16 3:21 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-16 3:21 Keno Fischer [this message]
2020-04-07 20:23 ` [PATCH] arch_prctl.2: Add ARCH_SET_CPUID subcommand Michael Kerrisk (man-pages)
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=20200316032127.GA4619@juliacomputing.com \
--to=keno@juliacomputing.com \
--cc=linux-man@vger.kernel.org \
--cc=mtk.manpages@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.