All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch V7 00/15] SBB 0
@ 2018-04-29 19:30 Thomas Gleixner
  2018-04-29 19:30 ` [patch V7 01/15] SBB 1 Thomas Gleixner
                   ` (16 more replies)
  0 siblings, 17 replies; 50+ messages in thread
From: Thomas Gleixner @ 2018-04-29 19:30 UTC (permalink / raw)
  To: speck

This is an update based on Konrads V6 series. The major changes are:

 - Distangle the mitigation control from the AMD/Intel cpu init code and
   keep it confined to bugs.c. That's cleaner and required to make the
   prctl mode work properly on both AMD and Intel

 - Avoid parsing the command line when RDS is not supported at all.

 - Make all the spec ctrl msr related variables __ro_after_init instead of
   read_mostly. Nothing can fiddle with them after boot.

 - Integrate the PRCTL:

   - Split it up into separate patches

   - Use the new scheme as proposed by Jon Masters

   - Document the interface and return values

   - Implement the context magic as I suggested in the earlier review

   - Make it work for both AMD and Intel

   - Allow caching of the AMD magic MSR to avoid a RMW in context switch.

   - Implement the arch prctl according to the new scheme w/o all the magic
     nonsense of allowing writes when prctl control is disabled and reusing
     the existing functions instead of adding yet another pile.

Things which need some thought:

 - The default mode for Intel is now PRCTL controlled, which might be OK
   for enterprise distro stuff. But what is going to happen for the rest of
   the world? Are the browsers prctl enabled on CRD? I seriously doubt that
   and I'm pondering to make the default ON for that very reason. We should
   not require that Joe User has to add magic crap to the kernel command
   line to get protected. Enterprise admins should know how to do that.

TODOs:
  - Make the prctl documentation rst properly formatted
  - Write a patch for the prctl(2) man page

Thanks,

	tglx

8<--------------
 Documentation/admin-guide/kernel-parameters.txt |   36 ++
 Documentation/userspace-api/index.rst           |    1 
 arch/x86/include/asm/cpufeatures.h              |    4 
 arch/x86/include/asm/msr-index.h                |    3 
 arch/x86/include/asm/nospec-branch.h            |   32 +-
 arch/x86/include/asm/thread_info.h              |    4 
 arch/x86/kernel/cpu/amd.c                       |   21 +
 arch/x86/kernel/cpu/bugs.c                      |  337 +++++++++++++++++++++++-
 arch/x86/kernel/cpu/common.c                    |   47 ++-
 arch/x86/kernel/cpu/cpu.h                       |    2 
 arch/x86/kernel/cpu/intel.c                     |    1 
 arch/x86/kernel/process.c                       |   22 +
 arch/x86/kvm/cpuid.c                            |    2 
 arch/x86/kvm/svm.c                              |    8 
 arch/x86/kvm/vmx.c                              |   16 -
 b/Documentation/userspace-api/spec_ctrl.rst     |   65 ++++
 b/arch/x86/include/asm/specctrl.h               |   38 ++
 drivers/base/cpu.c                              |    8 
 include/linux/cpu.h                             |    2 
 include/linux/nospec.h                          |    5 
 include/uapi/linux/prctl.h                      |   11 
 kernel/sys.c                                    |   18 +
 22 files changed, 638 insertions(+), 45 deletions(-)

^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2018-04-30 20:44 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-29 19:30 [patch V7 00/15] SBB 0 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 01/15] SBB 1 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 02/15] SBB 2 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 03/15] SBB 3 Thomas Gleixner
2018-04-29 23:31   ` [MODERATED] " Linus Torvalds
2018-04-30  2:50     ` Konrad Rzeszutek Wilk
2018-04-30  7:09     ` David Woodhouse
2018-04-29 19:30 ` [patch V7 04/15] SBB 4 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 05/15] SBB 5 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 06/15] SBB 6 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 07/15] SBB 7 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 08/15] SBB 8 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 09/15] SBB 9 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 10/15] SBB 10 Thomas Gleixner
2018-04-30  0:16   ` [MODERATED] " Konrad Rzeszutek Wilk
2018-04-30  7:49     ` Thomas Gleixner
2018-04-29 19:30 ` [patch V7 11/15] SBB 11 Thomas Gleixner
2018-04-29 19:30 ` [patch V7 12/15] SBB 12 Thomas Gleixner
2018-04-30  1:33   ` [MODERATED] " Konrad Rzeszutek Wilk
2018-04-29 19:30 ` [patch V7 13/15] SBB 13 Thomas Gleixner
2018-04-30  1:48   ` [MODERATED] " Konrad Rzeszutek Wilk
2018-04-30  2:39     ` Konrad Rzeszutek Wilk
2018-04-30  3:17     ` Jon Masters
2018-04-30  8:35       ` Thomas Gleixner
2018-04-30  2:20   ` [MODERATED] " Konrad Rzeszutek Wilk
2018-04-30  2:36   ` Konrad Rzeszutek Wilk
2018-04-30 17:28   ` Konrad Rzeszutek Wilk
2018-04-29 19:30 ` [patch V7 14/15] SBB 14 Thomas Gleixner
2018-04-30  2:14   ` [MODERATED] " Konrad Rzeszutek Wilk
2018-04-30  5:57     ` Thomas Gleixner
2018-04-30 15:49       ` [MODERATED] " Konrad Rzeszutek Wilk
2018-04-29 19:31 ` [patch V7 15/15] SBB 15 Thomas Gleixner
2018-04-30  2:32   ` [MODERATED] " Konrad Rzeszutek Wilk
2018-04-30 15:56   ` Konrad Rzeszutek Wilk
2018-04-30 16:07     ` Thomas Gleixner
2018-04-30 19:30   ` [MODERATED] " Tim Chen
2018-04-30 19:36     ` Thomas Gleixner
2018-04-30 20:12       ` [MODERATED] " Tim Chen
2018-04-30 20:20         ` Konrad Rzeszutek Wilk
2018-04-30 20:44           ` Tim Chen
2018-04-30 20:28         ` Thomas Gleixner
2018-04-30 20:09     ` [MODERATED] " Konrad Rzeszutek Wilk
2018-04-29 20:14 ` [patch V7 00/15] SBB 0 Thomas Gleixner
2018-04-29 20:35 ` [MODERATED] " Borislav Petkov
2018-04-29 20:46   ` Konrad Rzeszutek Wilk
2018-04-29 20:57     ` Thomas Gleixner
2018-04-29 21:40     ` [MODERATED] " Borislav Petkov
2018-04-29 20:55   ` Thomas Gleixner
2018-04-29 22:05     ` Thomas Gleixner
2018-04-30  0:06       ` [MODERATED] " Jon Masters

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.