James Morse
9fe0450785
x86/resctrl: Preserve CDP enable over CPU hotplug
...
Resctrl assumes that all CPUs are online when the filesystem is mounted,
and that CPUs remember their CDP-enabled state over CPU hotplug.
This goes wrong when resctrl's CDP-enabled state changes while all the
CPUs in a domain are offline.
When a domain comes online, enable (or disable!) CDP to match resctrl's
current setting.
Fixes: 5ff193fbde
("x86/intel_rdt: Add basic resctrl filesystem support")
Suggested-by: Reinette Chatre <reinette.chatre@intel.com >
Signed-off-by: James Morse <james.morse@arm.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Cc: <stable@vger.kernel.org >
Link: https://lkml.kernel.org/r/20200221162105.154163-1-james.morse@arm.com
2020-04-17 19:35:01 +02:00
Xiaochen Shen
536a0d8e79
x86/resctrl: Check monitoring static key in the MBM overflow handler
...
Currently, there are three static keys in the resctrl file system:
rdt_mon_enable_key and rdt_alloc_enable_key indicate if the monitoring
feature and the allocation feature are enabled, respectively. The
rdt_enable_key is enabled when either the monitoring feature or the
allocation feature is enabled.
If no monitoring feature is present (either hardware doesn't support a
monitoring feature or the feature is disabled by the kernel command line
option "rdt="), rdt_enable_key is still enabled but rdt_mon_enable_key
is disabled.
MBM is a monitoring feature. The MBM overflow handler intends to
check if the monitoring feature is not enabled for fast return.
So check the rdt_mon_enable_key in it instead of the rdt_enable_key as
former is the more accurate check.
[ bp: Massage commit message. ]
Fixes: e33026831b
("x86/intel_rdt/mbm: Handle counter overflow")
Signed-off-by: Xiaochen Shen <xiaochen.shen@intel.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Link: https://lkml.kernel.org/r/1576094705-13660-1-git-send-email-xiaochen.shen@intel.com
2020-01-17 19:32:32 +01:00
David Howells
23bf1b6be9
kernfs, sysfs, cgroup, intel_rdt: Support fs_context
...
Make kernfs support superblock creation/mount/remount with fs_context.
This requires that sysfs, cgroup and intel_rdt, which are built on kernfs,
be made to support fs_context also.
Notes:
(1) A kernfs_fs_context struct is created to wrap fs_context and the
kernfs mount parameters are moved in here (or are in fs_context).
(2) kernfs_mount{,_ns}() are made into kernfs_get_tree(). The extra
namespace tag parameter is passed in the context if desired
(3) kernfs_free_fs_context() is provided as a destructor for the
kernfs_fs_context struct, but for the moment it does nothing except
get called in the right places.
(4) sysfs doesn't wrap kernfs_fs_context since it has no parameters to
pass, but possibly this should be done anyway in case someone wants to
add a parameter in future.
(5) A cgroup_fs_context struct is created to wrap kernfs_fs_context and
the cgroup v1 and v2 mount parameters are all moved there.
(6) cgroup1 parameter parsing error messages are now handled by invalf(),
which allows userspace to collect them directly.
(7) cgroup1 parameter cleanup is now done in the context destructor rather
than in the mount/get_tree and remount functions.
Weirdies:
(*) cgroup_do_get_tree() calls cset_cgroup_from_root() with locks held,
but then uses the resulting pointer after dropping the locks. I'm
told this is okay and needs commenting.
(*) The cgroup refcount web. This really needs documenting.
(*) cgroup2 only has one root?
Add a suggestion from Thomas Gleixner in which the RDT enablement code is
placed into its own function.
[folded a leak fix from Andrey Vagin]
Signed-off-by: David Howells <dhowells@redhat.com >
cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
cc: Tejun Heo <tj@kernel.org >
cc: Li Zefan <lizefan@huawei.com >
cc: Johannes Weiner <hannes@cmpxchg.org >
cc: cgroups@vger.kernel.org
cc: fenghua.yu@intel.com
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
2019-02-28 03:29:34 -05:00
Babu Moger
4d05bf71f1
x86/resctrl: Introduce AMD QOS feature
...
Enable QOS feature on AMD.
Following QoS sub-features are supported on AMD if the underlying
hardware supports it:
- L3 Cache allocation enforcement
- L3 Cache occupancy monitoring
- L3 Code-Data Prioritization support
- Memory Bandwidth Enforcement (Allocation)
The specification is available at:
https://developer.amd.com/wp-content/resources/56375.pdf
There are differences in the way some of the features are implemented.
Separate those functions and add those as vendor specific functions.
The major difference is in MBA feature:
- AMD uses CPUID leaf 0x80000020 to initialize the MBA features.
- AMD uses direct bandwidth value instead of delay based on bandwidth values.
- MSR register base addresses are different for MBA.
- AMD allows non-contiguous L3 cache bit masks.
Signed-off-by: Babu Moger <babu.moger@amd.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brijesh Singh <brijesh.singh@amd.com >
Cc: "Chang S. Bae" <chang.seok.bae@intel.com >
Cc: David Miller <davem@davemloft.net >
Cc: David Woodhouse <dwmw2@infradead.org >
Cc: Dmitry Safonov <dima@arista.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jann Horn <jannh@google.com >
Cc: Joerg Roedel <jroedel@suse.de >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Kate Stewart <kstewart@linuxfoundation.org >
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com >
Cc: <linux-doc@vger.kernel.org >
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Philippe Ombredanne <pombredanne@nexb.com >
Cc: Pu Wen <puwen@hygon.cn >
Cc: <qianyue.zj@alibaba-inc.com >
Cc: "Rafael J. Wysocki" <rafael@kernel.org >
Cc: Reinette Chatre <reinette.chatre@intel.com >
Cc: Rian Hunter <rian@alum.mit.edu >
Cc: Sherry Hurwitz <sherry.hurwitz@amd.com >
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Thomas Lendacky <Thomas.Lendacky@amd.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Vitaly Kuznetsov <vkuznets@redhat.com >
Cc: <xiaochen.shen@intel.com >
Link: https://lkml.kernel.org/r/20181121202811.4492-12-babu.moger@amd.com
2018-11-22 20:16:20 +01:00
Babu Moger
a36c5ff560
x86/resctrl: Bring cbm_validate() into the resource structure
...
Bring all the functions that are different between the vendors into the
resource structure and initialize them dynamically. Add _intel suffix to
the Intel-specific functions.
cbm_validate() which does cache bitmask validation, differs between the
vendors as AMD allows non-contiguous masks. So, use separate functions
for Intel and AMD.
[ bp: Massage commit message and fixup rdt_resource members' vertical
alignment. ]
Signed-off-by: Babu Moger <babu.moger@amd.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brijesh Singh <brijesh.singh@amd.com >
Cc: "Chang S. Bae" <chang.seok.bae@intel.com >
Cc: David Miller <davem@davemloft.net >
Cc: David Woodhouse <dwmw2@infradead.org >
Cc: Dmitry Safonov <dima@arista.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jann Horn <jannh@google.com >
Cc: Joerg Roedel <jroedel@suse.de >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Kate Stewart <kstewart@linuxfoundation.org >
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com >
Cc: <linux-doc@vger.kernel.org >
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Philippe Ombredanne <pombredanne@nexb.com >
Cc: Pu Wen <puwen@hygon.cn >
Cc: <qianyue.zj@alibaba-inc.com >
Cc: "Rafael J. Wysocki" <rafael@kernel.org >
Cc: Reinette Chatre <reinette.chatre@intel.com >
Cc: Rian Hunter <rian@alum.mit.edu >
Cc: Sherry Hurwitz <sherry.hurwitz@amd.com >
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Thomas Lendacky <Thomas.Lendacky@amd.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Vitaly Kuznetsov <vkuznets@redhat.com >
Cc: <xiaochen.shen@intel.com >
Link: https://lkml.kernel.org/r/20181121202811.4492-7-babu.moger@amd.com
2018-11-22 20:16:19 +01:00
Babu Moger
1ad4fa41d9
x86/resctrl: Initialize the vendor-specific resource functions
...
Initialize the resource functions that are different between the
vendors. Some features are initialized differently between the vendors.
Add _intel suffix to Intel-specific functions.
For example, the MBA feature varies significantly between Intel and AMD.
Separate the initialization of these resource functions. That way we can
easily add AMD's functions later.
Signed-off-by: Babu Moger <babu.moger@amd.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brijesh Singh <brijesh.singh@amd.com >
Cc: "Chang S. Bae" <chang.seok.bae@intel.com >
Cc: David Miller <davem@davemloft.net >
Cc: David Woodhouse <dwmw2@infradead.org >
Cc: Dmitry Safonov <dima@arista.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jann Horn <jannh@google.com >
Cc: Joerg Roedel <jroedel@suse.de >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Kate Stewart <kstewart@linuxfoundation.org >
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com >
Cc: <linux-doc@vger.kernel.org >
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Philippe Ombredanne <pombredanne@nexb.com >
Cc: Pu Wen <puwen@hygon.cn >
Cc: <qianyue.zj@alibaba-inc.com >
Cc: "Rafael J. Wysocki" <rafael@kernel.org >
Cc: Reinette Chatre <reinette.chatre@intel.com >
Cc: Rian Hunter <rian@alum.mit.edu >
Cc: Sherry Hurwitz <sherry.hurwitz@amd.com >
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Thomas Lendacky <Thomas.Lendacky@amd.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Vitaly Kuznetsov <vkuznets@redhat.com >
Cc: <xiaochen.shen@intel.com >
Link: https://lkml.kernel.org/r/20181121202811.4492-6-babu.moger@amd.com
2018-11-22 20:16:19 +01:00
Babu Moger
aa50453a44
x86/resctrl: Move all the macros to resctrl/internal.h
...
Move all the macros to resctrl/internal.h and rename the registers with
MSR_ prefix for consistency.
[bp: align MSR definitions vertically ]
Signed-off-by: Babu Moger <babu.moger@amd.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brijesh Singh <brijesh.singh@amd.com >
Cc: "Chang S. Bae" <chang.seok.bae@intel.com >
Cc: David Miller <davem@davemloft.net >
Cc: David Woodhouse <dwmw2@infradead.org >
Cc: Dmitry Safonov <dima@arista.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jann Horn <jannh@google.com >
Cc: Joerg Roedel <jroedel@suse.de >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Kate Stewart <kstewart@linuxfoundation.org >
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com >
Cc: <linux-doc@vger.kernel.org >
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Philippe Ombredanne <pombredanne@nexb.com >
Cc: Pu Wen <puwen@hygon.cn >
Cc: <qianyue.zj@alibaba-inc.com >
Cc: "Rafael J. Wysocki" <rafael@kernel.org >
Cc: Reinette Chatre <reinette.chatre@intel.com >
Cc: Rian Hunter <rian@alum.mit.edu >
Cc: Sherry Hurwitz <sherry.hurwitz@amd.com >
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Thomas Lendacky <Thomas.Lendacky@amd.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Vitaly Kuznetsov <vkuznets@redhat.com >
Cc: <xiaochen.shen@intel.com >
Link: https://lkml.kernel.org/r/20181121202811.4492-5-babu.moger@amd.com
2018-11-22 20:16:19 +01:00
Babu Moger
352940ecec
x86/resctrl: Rename the RDT functions and definitions
...
As AMD is starting to support RESCTRL features, rename the RDT functions
and definitions to more generic names.
Replace "intel_rdt" with "resctrl" where applicable.
Signed-off-by: Babu Moger <babu.moger@amd.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Reviewed-by: Borislav Petkov <bp@suse.de >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brijesh Singh <brijesh.singh@amd.com >
Cc: "Chang S. Bae" <chang.seok.bae@intel.com >
Cc: David Miller <davem@davemloft.net >
Cc: David Woodhouse <dwmw2@infradead.org >
Cc: Dmitry Safonov <dima@arista.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jann Horn <jannh@google.com >
Cc: Joerg Roedel <jroedel@suse.de >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Kate Stewart <kstewart@linuxfoundation.org >
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com >
Cc: <linux-doc@vger.kernel.org >
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Philippe Ombredanne <pombredanne@nexb.com >
Cc: Pu Wen <puwen@hygon.cn >
Cc: <qianyue.zj@alibaba-inc.com >
Cc: "Rafael J. Wysocki" <rafael@kernel.org >
Cc: Reinette Chatre <reinette.chatre@intel.com >
Cc: Rian Hunter <rian@alum.mit.edu >
Cc: Sherry Hurwitz <sherry.hurwitz@amd.com >
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Thomas Lendacky <Thomas.Lendacky@amd.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Vitaly Kuznetsov <vkuznets@redhat.com >
Cc: <xiaochen.shen@intel.com >
Link: https://lkml.kernel.org/r/20181121202811.4492-3-babu.moger@amd.com
2018-11-22 20:16:18 +01:00
Babu Moger
fa7d949337
x86/resctrl: Rename and move rdt files to a separate directory
...
New generation of AMD processors add support for RDT (or QOS) features.
Together, these features will be called RESCTRL. With more than one
vendors supporting these features, it seems more appropriate to rename
these files.
Create a new directory with the name 'resctrl' and move all the
intel_rdt files to the new directory. This way all the resctrl related
code resides inside one directory.
[ bp: Add SPDX identifier to the Makefile ]
Suggested-by: Borislav Petkov <bp@suse.de >
Signed-off-by: Babu Moger <babu.moger@amd.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brijesh Singh <brijesh.singh@amd.com >
Cc: "Chang S. Bae" <chang.seok.bae@intel.com >
Cc: David Miller <davem@davemloft.net >
Cc: David Woodhouse <dwmw2@infradead.org >
Cc: Dmitry Safonov <dima@arista.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jann Horn <jannh@google.com >
Cc: Joerg Roedel <jroedel@suse.de >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Kate Stewart <kstewart@linuxfoundation.org >
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com >
Cc: <linux-doc@vger.kernel.org >
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Philippe Ombredanne <pombredanne@nexb.com >
Cc: Pu Wen <puwen@hygon.cn >
Cc: <qianyue.zj@alibaba-inc.com >
Cc: "Rafael J. Wysocki" <rafael@kernel.org >
Cc: Reinette Chatre <reinette.chatre@intel.com >
Cc: Rian Hunter <rian@alum.mit.edu >
Cc: Sherry Hurwitz <sherry.hurwitz@amd.com >
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Thomas Lendacky <Thomas.Lendacky@amd.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Vitaly Kuznetsov <vkuznets@redhat.com >
Cc: <xiaochen.shen@intel.com >
Link: https://lkml.kernel.org/r/20181121202811.4492-2-babu.moger@amd.com
2018-11-22 20:16:18 +01:00