From: Marty McFadden <mcfadden8@llnl.gov>
To: unlisted-recipients:; (no To-header on input)
Cc: ak@linux.intel.com, andriy.shevchenko@linux.intel.com,
bp@alien8.de, bp@suse.de, brgerst@gmail.com,
dan.j.williams@intel.com, dyoung@redhat.com, hpa@zytor.com,
linux@horizon.com, linux-kernel@vger.kernel.org, luto@kernel.org,
mcfadden8@llnl.gov, mingo@redhat.com, pavel@ucw.cz,
tglx@linutronix.de, viro@zeniv.linux.org.uk, x86@kernel.org,
yu.c.chen@intel.com
Subject: [PATCH 0/4] MSR: MSR: MSR Whitelist and Batch Introduction
Date: Thu, 25 Feb 2016 16:02:55 -0800 [thread overview]
Message-ID: <1456444979-224547-1-git-send-email-mcfadden8@llnl.gov> (raw)
This patch addresses the following two problems:
1. The current msr module grants all-or-nothing access to MSRs,
thus making user-level runtime performance adjustments
problematic, particularly for power-constrained HPC systems.
2. The current msr module requires a separate system call and the
acquisition of the preemption lock for each individual MSR access.
This overhead degrades performance of runtime tools that would
ideally sample multiple MSRs at high frequencies.
Problem #1 is addressed by introducing a whitelist policy for MSR access.
A batch mechanism is added to address problem #2.
[PATCH 1/4] MSR: Prep for separating msr.c into three files
[PATCH 2/4] MSR: Prep for separating msr.c into three files
Prepares for providing the overall MSR kernel module as a set of
three implementation files: msr_entry.c, msr_whitelist.c, and
msr_batch.c.
Additonal changes made besides renaming to stop scripts/checkpatch.pl
complaining.
[PATCH 3/4] MSR: msr Whitelist Implementation
Allows the administrator to configure a set of bit masks for MSRs
where access is permitted.
Whitelist Administration:
To configure whitelist (as root):
cat whitelistfile > /dev/cpu/msr_whitelist
This operation will cause the previous whitelist to be
replaced by the specified whitelist.
To enumerate current whitelist (as root):
cat < /dev/cpu/msr_whitelist
To remove whitelist (as root):
echo > /dev/cpu/msr_whitelist
Security model:
If user has CAP_SYS_RAWIO privileges, they will enjoy full
access to MSRs like they do today.
Otherwise, if the user is able to open the /dev/cpu/*/msr
file, they will have access to MSR operations as follows:
If the write mask exists for a particular MSR, then
rdmsr access to that MSR access is granted.
If the write mask is set to all ones (0xffffffffffffffff),
then the user may perform a "raw" wrmsr operation with all
64 bits being overwritten to that MSR.
If the write mask is not 0xffffffffffffffff, then a rdmsr
will be performed first and only the bits set in the write
mask will be affected in the MSR.
[PATCH 4/4] MSR: msr Batch processing feature
Provides a new ioctl interface through /dev/cpu/msr_batch. Each
element in the batch list is subject to the whitelist security model
described above.
This implementation will cause an Inter Processor Interrupt to be sent
to each destination processor and will wait until all processors have
finished processing their respective batch of MSR operations before
returning.
Implementation Note: A separate "error" field is maintained per MSR
operation in order to maintain reentrancy into the IPI callback
function.
Signed-off-by: Marty McFadden <mcfadden8@llnl.gov>
next reply other threads:[~2016-02-26 0:13 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-26 0:02 Marty McFadden [this message]
2016-02-26 0:02 ` [PATCH 1/4] MSR: Prep for separating msr.c into three files Marty McFadden
2016-02-26 2:56 ` kbuild test robot
2016-02-26 10:08 ` Andy Shevchenko
2016-02-26 0:02 ` [PATCH 2/4] " Marty McFadden
2016-02-26 0:02 ` [PATCH 3/4] MSR: msr Whitelist Implementation Marty McFadden
2016-02-26 1:05 ` [PATCH] MSR: fix badzero.cocci warnings kbuild test robot
2016-02-26 1:05 ` [PATCH 3/4] MSR: msr Whitelist Implementation kbuild test robot
2016-02-26 0:02 ` [PATCH 4/4] MSR: msr Batch processing feature Marty McFadden
2016-02-26 2:48 ` Andy Lutomirski
2016-03-03 17:21 ` One Thousand Gnomes
2016-03-03 23:09 ` Mcfadden, Marty Jay
2016-02-26 7:37 ` [PATCH 0/4] MSR: MSR: MSR Whitelist and Batch Introduction Ingo Molnar
2016-02-28 18:54 ` Mcfadden, Marty Jay
2016-02-28 19:01 ` Borislav Petkov
2016-02-29 2:55 ` Mcfadden, Marty Jay
2016-02-29 14:58 ` Borislav Petkov
2016-02-29 16:31 ` Henrique de Moraes Holschuh
2016-02-29 17:22 ` Borislav Petkov
2016-02-29 17:53 ` George Spelvin
2016-02-29 18:20 ` Borislav Petkov
2016-02-29 22:35 ` Mcfadden, Marty Jay
2016-02-29 23:41 ` Borislav Petkov
2016-03-01 19:01 ` Rountree, Barry L.
2016-03-03 0:40 ` Andy Lutomirski
2016-03-01 8:02 ` Thomas Gleixner
2016-03-01 18:29 ` Rountree, Barry L.
2016-03-01 18:38 ` Borislav Petkov
2016-02-29 17:17 ` Andy Lutomirski
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=1456444979-224547-1-git-send-email-mcfadden8@llnl.gov \
--to=mcfadden8@llnl.gov \
--cc=ak@linux.intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bp@alien8.de \
--cc=bp@suse.de \
--cc=brgerst@gmail.com \
--cc=dan.j.williams@intel.com \
--cc=dyoung@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@horizon.com \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=pavel@ucw.cz \
--cc=tglx@linutronix.de \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.org \
--cc=yu.c.chen@intel.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
all inboxes | Powered by JetHome®