Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar: "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" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/intel/uncore: Add Knights Mill CPUID perf/x86/intel/rapl: Add Knights Mill CPUID perf/x86/intel: Add Knights Mill CPUID x86/cpu/intel: Add Knights Mill to Intel family x86/e820: Don't merge consecutive E820_PRAM ranges pkeys: Remove easily triggered WARN x86: Remove duplicate rtit status MSR macro x86/smp: Add irq_enter/exit() in smp_reschedule_interrupt()
This commit is contained in:
commit
0832881425
|
@ -3898,6 +3898,7 @@ __init int intel_pmu_init(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case INTEL_FAM6_XEON_PHI_KNL:
|
case INTEL_FAM6_XEON_PHI_KNL:
|
||||||
|
case INTEL_FAM6_XEON_PHI_KNM:
|
||||||
memcpy(hw_cache_event_ids,
|
memcpy(hw_cache_event_ids,
|
||||||
slm_hw_cache_event_ids, sizeof(hw_cache_event_ids));
|
slm_hw_cache_event_ids, sizeof(hw_cache_event_ids));
|
||||||
memcpy(hw_cache_extra_regs,
|
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_HAS_RSP_1;
|
||||||
x86_pmu.flags |= PMU_FL_NO_HT_SHARING;
|
x86_pmu.flags |= PMU_FL_NO_HT_SHARING;
|
||||||
|
|
||||||
pr_cont("Knights Landing events, ");
|
pr_cont("Knights Landing/Mill events, ");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case INTEL_FAM6_SKYLAKE_MOBILE:
|
case INTEL_FAM6_SKYLAKE_MOBILE:
|
||||||
|
|
|
@ -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_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_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_MOBILE, skl_rapl_init),
|
||||||
X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_DESKTOP, skl_rapl_init),
|
X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_DESKTOP, skl_rapl_init),
|
||||||
|
|
|
@ -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_X, bdx_uncore_init),
|
||||||
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL_XEON_D, 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_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_DESKTOP,skl_uncore_init),
|
||||||
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_MOBILE, 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),
|
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_X, skx_uncore_init),
|
||||||
|
|
|
@ -64,5 +64,6 @@
|
||||||
/* Xeon Phi */
|
/* Xeon Phi */
|
||||||
|
|
||||||
#define INTEL_FAM6_XEON_PHI_KNL 0x57 /* Knights Landing */
|
#define INTEL_FAM6_XEON_PHI_KNL 0x57 /* Knights Landing */
|
||||||
|
#define INTEL_FAM6_XEON_PHI_KNM 0x85 /* Knights Mill */
|
||||||
|
|
||||||
#endif /* _ASM_X86_INTEL_FAMILY_H */
|
#endif /* _ASM_X86_INTEL_FAMILY_H */
|
||||||
|
|
|
@ -88,7 +88,6 @@
|
||||||
|
|
||||||
#define MSR_IA32_RTIT_CTL 0x00000570
|
#define MSR_IA32_RTIT_CTL 0x00000570
|
||||||
#define MSR_IA32_RTIT_STATUS 0x00000571
|
#define MSR_IA32_RTIT_STATUS 0x00000571
|
||||||
#define MSR_IA32_RTIT_STATUS 0x00000571
|
|
||||||
#define MSR_IA32_RTIT_ADDR0_A 0x00000580
|
#define MSR_IA32_RTIT_ADDR0_A 0x00000580
|
||||||
#define MSR_IA32_RTIT_ADDR0_B 0x00000581
|
#define MSR_IA32_RTIT_ADDR0_B 0x00000581
|
||||||
#define MSR_IA32_RTIT_ADDR1_A 0x00000582
|
#define MSR_IA32_RTIT_ADDR1_A 0x00000582
|
||||||
|
|
|
@ -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
|
* continue building up new bios map based on this
|
||||||
* information
|
* information
|
||||||
*/
|
*/
|
||||||
if (current_type != last_type) {
|
if (current_type != last_type || current_type == E820_PRAM) {
|
||||||
if (last_type != 0) {
|
if (last_type != 0) {
|
||||||
new_bios[new_bios_entry].size =
|
new_bios[new_bios_entry].size =
|
||||||
change_point[chgidx]->addr - last_addr;
|
change_point[chgidx]->addr - last_addr;
|
||||||
|
|
|
@ -261,8 +261,10 @@ static inline void __smp_reschedule_interrupt(void)
|
||||||
|
|
||||||
__visible void smp_reschedule_interrupt(struct pt_regs *regs)
|
__visible void smp_reschedule_interrupt(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
|
irq_enter();
|
||||||
ack_APIC_irq();
|
ack_APIC_irq();
|
||||||
__smp_reschedule_interrupt();
|
__smp_reschedule_interrupt();
|
||||||
|
irq_exit();
|
||||||
/*
|
/*
|
||||||
* KVM uses this interrupt to force a cpu out of guest mode
|
* KVM uses this interrupt to force a cpu out of guest mode
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue