Skip to content
  • Anand K Mistry's avatar
    fe719888
    proc: provide details on indirect branch speculation · fe719888
    Anand K Mistry authored
    Similar to speculation store bypass, show information about the indirect
    branch speculation mode of a task in /proc/$pid/status.
    
    For testing/benchmarking, I needed to see whether IB (Indirect Branch)
    speculation (see Spectre-v2) is enabled on a task, to see whether an
    IBPB instruction should be executed on an address space switch.
    Unfortunately, this information isn't available anywhere else and
    currently the only way to get it is to hack the kernel to expose it
    (like this change).  It also helped expose a bug with conditional IB
    speculation on certain CPUs.
    
    Another place this could be useful is to audit the system when using
    sanboxing.  With this change, I can confirm that seccomp-enabled
    process have IB speculation force disabled as expected when the kernel
    command line parameter `spectre_v2_user=seccomp`.
    
    Since there's already a 'Speculation_Store_Bypass' field, I used that
    as precedent for adding this one.
    
    [amistry@google.com: remove underscores from field name to workaround documentation issue]
      Link: https://lkml.kernel.org/r/20201106131015.v2.1.I7782b0cedb705384a634cfd8898eb7523562da99@changeid
    
    Link: https://lkml.kernel.org/r/20201030172731.1.I7782b0cedb705384a634cfd8898eb7523562da99@changeid
    
    
    Signed-off-by: default avatarAnand K Mistry <amistry@google.com>
    Cc: Anthony Steinhauser <asteinhauser@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Anand K Mistry <amistry@google.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Alexey Gladkov <gladkov.alexey@gmail.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: NeilBrown <neilb@suse.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    fe719888
    proc: provide details on indirect branch speculation
    Anand K Mistry authored
    Similar to speculation store bypass, show information about the indirect
    branch speculation mode of a task in /proc/$pid/status.
    
    For testing/benchmarking, I needed to see whether IB (Indirect Branch)
    speculation (see Spectre-v2) is enabled on a task, to see whether an
    IBPB instruction should be executed on an address space switch.
    Unfortunately, this information isn't available anywhere else and
    currently the only way to get it is to hack the kernel to expose it
    (like this change).  It also helped expose a bug with conditional IB
    speculation on certain CPUs.
    
    Another place this could be useful is to audit the system when using
    sanboxing.  With this change, I can confirm that seccomp-enabled
    process have IB speculation force disabled as expected when the kernel
    command line parameter `spectre_v2_user=seccomp`.
    
    Since there's already a 'Speculation_Store_Bypass' field, I used that
    as precedent for adding this one.
    
    [amistry@google.com: remove underscores from field name to workaround documentation issue]
      Link: https://lkml.kernel.org/r/20201106131015.v2.1.I7782b0cedb705384a634cfd8898eb7523562da99@changeid
    
    Link: https://lkml.kernel.org/r/20201030172731.1.I7782b0cedb705384a634cfd8898eb7523562da99@changeid
    
    
    Signed-off-by: default avatarAnand K Mistry <amistry@google.com>
    Cc: Anthony Steinhauser <asteinhauser@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Anand K Mistry <amistry@google.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Alexey Gladkov <gladkov.alexey@gmail.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: NeilBrown <neilb@suse.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Loading