x86 fixes
Subsystems (3)
Linus,
Please pull the latest x86-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-urgent-for-linus
# HEAD: 0e60439c22ec551e9b5780eba73ddfeb63ab63d9 Merge branch 'mm/pkeys' into x86/urgent, to pick up pkeys fix
Misc fixes, plus hw-enablement changes:
- fix persistent RAM handling
- remove pkeys warning
- remove duplicate macro
- fix debug warning in irq handler
- Add new 'Knights Mill' CPU related constants and enable the perf bits
Thanks,
Ingo
------------------>
Dan Williams (1):
x86/e820: Don't merge consecutive E820_PRAM ranges
Dave Jones (1):
pkeys: Remove easily triggered WARN
Longpeng(Mike) (1):
x86: Remove duplicate rtit status MSR macro
Piotr Luc (4):
x86/cpu/intel: Add Knights Mill to Intel family perf/x86/intel: Add Knights Mill CPUID perf/x86/intel/rapl: Add Knights Mill CPUID perf/x86/intel/uncore: Add Knights Mill CPUID
Wanpeng Li (1):
x86/smp: Add irq_enter/exit() in smp_reschedule_interrupt()
arch/x86/events/intel/core.c | 3 ++- arch/x86/events/intel/rapl.c | 1 + arch/x86/events/intel/uncore.c | 1 + arch/x86/include/asm/intel-family.h | 1 + arch/x86/include/asm/msr-index.h | 1 - arch/x86/kernel/e820.c | 2 +- arch/x86/kernel/smp.c | 2 ++ 7 files changed, 8 insertions(+), 3 deletions(-)
arch/x86/events/intel/core.c +2 -1
@@ -3898,6 +3898,7 @@ __init int intel_pmu_init(void)break ;case INTEL_FAM6_XEON_PHI_KNL : +case INTEL_FAM6_XEON_PHI_KNM :memcpy (hw_cache_event_ids, slm_hw_cache_event_ids,sizeof (hw_cache_event_ids)); memcpy(hw_cache_extra_regs,
@@ -3912,7 +3913,7 @@ __init int intel_pmu_init(void) x86_pmu.flags |=PMU_FL_HAS_RSP_1 ; x86_pmu.flags |=PMU_FL_NO_HT_SHARING ; -pr_cont ("Knights Landing events, " ); +pr_cont ("Knights Landing/Mill events, " );break ;case INTEL_FAM6_SKYLAKE_MOBILE :
arch/x86/events/intel/rapl.c +1 -0
@@ -763,6 +763,7 @@ static const struct x86_cpu_id rapl_cpu_match[] __initconst = {X86_RAPL_MODEL_MATCH (INTEL_FAM6_BROADWELL_XEON_D , hsw_rapl_init),X86_RAPL_MODEL_MATCH (INTEL_FAM6_XEON_PHI_KNL , knl_rapl_init), +X86_RAPL_MODEL_MATCH (INTEL_FAM6_XEON_PHI_KNM , knl_rapl_init),X86_RAPL_MODEL_MATCH (INTEL_FAM6_SKYLAKE_MOBILE , skl_rapl_init), X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_DESKTOP, skl_rapl_init),
arch/x86/events/intel/uncore.c +1 -0
@@ -1349,6 +1349,7 @@ static const struct x86_cpu_id intel_uncore_match[] __initconst = {X86_UNCORE_MODEL_MATCH (INTEL_FAM6_BROADWELL_X , bdx_uncore_init),X86_UNCORE_MODEL_MATCH (INTEL_FAM6_BROADWELL_XEON_D , bdx_uncore_init),X86_UNCORE_MODEL_MATCH (INTEL_FAM6_XEON_PHI_KNL , knl_uncore_init), +X86_UNCORE_MODEL_MATCH (INTEL_FAM6_XEON_PHI_KNM , knl_uncore_init),X86_UNCORE_MODEL_MATCH (INTEL_FAM6_SKYLAKE_DESKTOP ,skl_uncore_init),X86_UNCORE_MODEL_MATCH (INTEL_FAM6_SKYLAKE_MOBILE , skl_uncore_init), X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_X, skx_uncore_init),
arch/x86/include/asm/intel-family.h +1 -0
@@ -64,5 +64,6 @@/* Xeon Phi */ #define INTEL_FAM6_XEON_PHI_KNL 0x57/* Knights Landing */ +#define INTEL_FAM6_XEON_PHI_KNM 0x85/* Knights Mill */ #endif /* _ASM_X86_INTEL_FAMILY_H */
arch/x86/include/asm/msr-index.h +0 -1
@@ -88,7 +88,6 @@#define MSR_IA32_RTIT_CTL 0x00000570#define MSR_IA32_RTIT_STATUS 0x00000571 -#define MSR_IA32_RTIT_STATUS 0x00000571#define MSR_IA32_RTIT_ADDR0_A 0x00000580#define MSR_IA32_RTIT_ADDR0_B 0x00000581#define MSR_IA32_RTIT_ADDR1_A 0x00000582
arch/x86/kernel/e820.c +1 -1
@@ -350,7 +350,7 @@ int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map,* continue building up new bios map based on this * information */ -if (current_type != last_type) { +if (current_type != last_type || current_type ==E820_PRAM ) {if (last_type !=0 ) { new_bios[new_bios_entry].size = change_point[chgidx]->addr - last_addr;
arch/x86/kernel/smp.c +2 -0
@@ -261,8 +261,10 @@ static inline void __smp_reschedule_interrupt(void) __visible void smp_reschedule_interrupt(struct pt_regs *regs) { +irq_enter ();ack_APIC_irq ();__smp_reschedule_interrupt (); +irq_exit ();/* * KVM uses this interrupt to force a cpu out of guest mode */