linux_dsm_epyc7002/arch/x86/kernel/cpu
Qian Cai e278af89f1 x86/resctrl: Fix an imbalance in domain_remove_cpu()
A system that supports resource monitoring may have multiple resources
while not all of these resources are capable of monitoring. Monitoring
related state is initialized only for resources that are capable of
monitoring and correspondingly this state should subsequently only be
removed from these resources that are capable of monitoring.

domain_add_cpu() calls domain_setup_mon_state() only when r->mon_capable
is true where it will initialize d->mbm_over. However,
domain_remove_cpu() calls cancel_delayed_work(&d->mbm_over) without
checking r->mon_capable resulting in an attempt to cancel d->mbm_over on
all resources, even those that never initialized d->mbm_over because
they are not capable of monitoring. Hence, it triggers a debugobjects
warning when offlining CPUs because those timer debugobjects are never
initialized:

  ODEBUG: assert_init not available (active state 0) object type:
  timer_list hint: 0x0
  WARNING: CPU: 143 PID: 789 at lib/debugobjects.c:484
  debug_print_object
  Hardware name: HP Synergy 680 Gen9/Synergy 680 Gen9 Compute Module, BIOS I40 05/23/2018
  RIP: 0010:debug_print_object
  Call Trace:
  debug_object_assert_init
  del_timer
  try_to_grab_pending
  cancel_delayed_work
  resctrl_offline_cpu
  cpuhp_invoke_callback
  cpuhp_thread_fun
  smpboot_thread_fn
  kthread
  ret_from_fork

Fixes: e33026831b ("x86/intel_rdt/mbm: Handle counter overflow")
Signed-off-by: Qian Cai <cai@lca.pw>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: john.stultz@linaro.org
Cc: sboyd@kernel.org
Cc: <stable@vger.kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: tj@kernel.org
Cc: Tony Luck <tony.luck@intel.com>
Cc: Vikas Shivappa <vikas.shivappa@linux.intel.com>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/20191211033042.2188-1-cai@lca.pw
2019-12-30 19:25:59 +01:00
..
mce x86/mce: Fix possibly incorrect severity calculation on AMD 2019-12-17 09:39:53 +01:00
microcode x86/microcode/intel: Issue the revision updated message only on the BSP 2019-10-01 16:06:35 +02:00
mtrr x86: mtrr: cyrix: Mark expected switch fall-through 2019-08-07 15:12:01 +02:00
resctrl x86/resctrl: Fix an imbalance in domain_remove_cpu() 2019-12-30 19:25:59 +01:00
.gitignore
acrn.c x86/acrn: Use HYPERVISOR_CALLBACK_VECTOR for ACRN guest upcall vector 2019-06-11 21:31:31 +02:00
amd.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-09-16 18:47:53 -07:00
aperfmperf.c x86/cpu: Disable frequency requests via aperfmperf IPI for nohz_full CPUs 2019-06-22 17:23:48 +02:00
bugs.c x86/speculation: Fix redundant MDS mitigation message 2019-11-16 15:24:56 +01:00
cacheinfo.c x86/cacheinfo: Fix a -Wtype-limits warning 2019-06-19 19:21:32 +02:00
centaur.c x86/CPU: Move x86_cpuinfo::x86_max_cores assignment to detect_num_cpu_cores() 2018-05-13 16:14:24 +02:00
common.c x86/doublefault/32: Move #DF stack and TSS to cpu_entry_area 2019-11-26 21:53:34 +01:00
cpu.h x86/cpu: Add a "tsx=" cmdline option with TSX disabled by default 2019-10-28 08:36:58 +01:00
cpuid-deps.c x86/cpufeatures: Enable a new AVX512 CPU feature 2019-07-22 10:38:25 +02:00
cyrix.c x86/cpu/cyrix: Use correct macros for Cyrix calls on Geode processors 2019-03-21 12:28:50 +01:00
hygon.c x86: Remove X86_FEATURE_MFENCE_RDTSC 2019-07-22 12:00:51 +02:00
hypervisor.c x86/paravirt: Remove const mark from x86_hyper_xen_hvm variable 2019-07-17 08:09:59 +02:00
intel_epb.c x86: intel_epb: Do not build when CONFIG_PM is unset 2019-05-30 10:58:36 +02:00
intel_pconfig.c x86/pconfig: Detect PCONFIG targets 2018-03-12 12:10:54 +01:00
intel.c Linux 5.4-rc8 2019-11-19 09:00:45 +01:00
Makefile x86/cpu: Add a "tsx=" cmdline option with TSX disabled by default 2019-10-28 08:36:58 +01:00
match.c x86/cpufeature: Add facility to check for min microcode revisions 2019-02-11 07:59:23 +01:00
mkcapflags.sh x86/build: Add 'set -e' to mkcapflags.sh to delete broken capflags.c 2019-06-25 09:52:05 +02:00
mshyperv.c Merge branch 'linus' into x86/hyperv 2019-11-15 10:30:50 +01:00
perfctr-watchdog.c x86/events: Add Hygon Dhyana support to PMU infrastructure 2018-09-27 18:28:57 +02:00
powerflags.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
proc.c x86: Convert some slow-path static_cpu_has() callers to boot_cpu_has() 2019-04-08 12:13:34 +02:00
rdrand.c x86/rdrand: Sanity-check RDRAND output 2019-10-01 19:55:32 +02:00
scattered.c x86/cpufeatures: Combine word 11 and 12 into a new scattered features word 2019-06-20 12:38:44 +02:00
topology.c x86/topology: Create topology_max_die_per_package() 2019-05-23 10:08:30 +02:00
transmeta.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tsx.c x86/tsx: Add config options to set tsx=on|off|auto 2019-10-28 09:12:18 +01:00
umc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
umwait.c KVM: vmx: Emulate MSR IA32_UMWAIT_CONTROL 2019-09-24 14:34:36 +02:00
vmware.c x86/cpu/vmware: Use the full form of INL in VMWARE_PORT 2019-10-08 13:26:42 +02:00
zhaoxin.c x86/cpu: Create Zhaoxin processors architecture support file 2019-06-22 11:45:57 +02:00