From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2639450936259189702==" MIME-Version: 1.0 From: kbuild test robot To: kbuild-all@lists.01.org Subject: [peterz-queue:perf/urgent 4/11] arch/x86/events/intel/core.c:4986:7: error: 'INTEL_FAM6_COMETLAKE_L' undeclared; did you mean 'INTEL_FAM6_ICELAKE_L'? Date: Wed, 09 Oct 2019 19:39:21 +0800 Message-ID: <201910091920.B2pgJRWe%lkp@intel.com> List-Id: --===============2639450936259189702== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git pe= rf/urgent head: 820d9b14766e19b76bd834485722c0925c7d0e1e commit: 65ffc7a872f9b426d8864f7ae8d87f4986af8cab [4/11] perf/x86/intel: Add= Comet Lake CPU support config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.4.0-13) 7.4.0 reproduce: git checkout 65ffc7a872f9b426d8864f7ae8d87f4986af8cab # save the attached .config to linux build tree make ARCH=3Di386 = If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): arch/x86/events/intel/core.c: In function 'intel_pmu_init': >> arch/x86/events/intel/core.c:4986:7: error: 'INTEL_FAM6_COMETLAKE_L' und= eclared (first use in this function); did you mean 'INTEL_FAM6_ICELAKE_L'? case INTEL_FAM6_COMETLAKE_L: ^~~~~~~~~~~~~~~~~~~~~~ INTEL_FAM6_ICELAKE_L arch/x86/events/intel/core.c:4986:7: note: each undeclared identifier is= reported only once for each function it appears in >> arch/x86/events/intel/core.c:4987:7: error: 'INTEL_FAM6_COMETLAKE' undec= lared (first use in this function); did you mean 'INTEL_FAM6_COMETLAKE_L'? case INTEL_FAM6_COMETLAKE: ^~~~~~~~~~~~~~~~~~~~ INTEL_FAM6_COMETLAKE_L vim +4986 arch/x86/events/intel/core.c 4512 = 4513 __init int intel_pmu_init(void) 4514 { 4515 struct attribute **extra_skl_attr =3D &empty_attrs; 4516 struct attribute **extra_attr =3D &empty_attrs; 4517 struct attribute **td_attr =3D &empty_attrs; 4518 struct attribute **mem_attr =3D &empty_attrs; 4519 struct attribute **tsx_attr =3D &empty_attrs; 4520 union cpuid10_edx edx; 4521 union cpuid10_eax eax; 4522 union cpuid10_ebx ebx; 4523 struct event_constraint *c; 4524 unsigned int unused; 4525 struct extra_reg *er; 4526 bool pmem =3D false; 4527 int version, i; 4528 char *name; 4529 = 4530 if (!cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON)) { 4531 switch (boot_cpu_data.x86) { 4532 case 0x6: 4533 return p6_pmu_init(); 4534 case 0xb: 4535 return knc_pmu_init(); 4536 case 0xf: 4537 return p4_pmu_init(); 4538 } 4539 return -ENODEV; 4540 } 4541 = 4542 /* 4543 * Check whether the Architectural PerfMon supports 4544 * Branch Misses Retired hw_event or not. 4545 */ 4546 cpuid(10, &eax.full, &ebx.full, &unused, &edx.full); 4547 if (eax.split.mask_length < ARCH_PERFMON_EVENTS_COUNT) 4548 return -ENODEV; 4549 = 4550 version =3D eax.split.version_id; 4551 if (version < 2) 4552 x86_pmu =3D core_pmu; 4553 else 4554 x86_pmu =3D intel_pmu; 4555 = 4556 x86_pmu.version =3D version; 4557 x86_pmu.num_counters =3D eax.split.num_counters; 4558 x86_pmu.cntval_bits =3D eax.split.bit_width; 4559 x86_pmu.cntval_mask =3D (1ULL << eax.split.bit_width) - 1; 4560 = 4561 x86_pmu.events_maskl =3D ebx.full; 4562 x86_pmu.events_mask_len =3D eax.split.mask_length; 4563 = 4564 x86_pmu.max_pebs_events =3D min_t(unsigned, MAX_PEBS_EVENTS, x86_p= mu.num_counters); 4565 = 4566 /* 4567 * Quirk: v2 perfmon does not report fixed-purpose events, so 4568 * assume@least 3 events, when not running in a hypervisor: 4569 */ 4570 if (version > 1) { 4571 int assume =3D 3 * !boot_cpu_has(X86_FEATURE_HYPERVISOR); 4572 = 4573 x86_pmu.num_counters_fixed =3D 4574 max((int)edx.split.num_counters_fixed, assume); 4575 } 4576 = 4577 if (version >=3D 4) 4578 x86_pmu.counter_freezing =3D !disable_counter_freezing; 4579 = 4580 if (boot_cpu_has(X86_FEATURE_PDCM)) { 4581 u64 capabilities; 4582 = 4583 rdmsrl(MSR_IA32_PERF_CAPABILITIES, capabilities); 4584 x86_pmu.intel_cap.capabilities =3D capabilities; 4585 } 4586 = 4587 intel_ds_init(); 4588 = 4589 x86_add_quirk(intel_arch_events_quirk); /* Install first, so it run= s last */ 4590 = 4591 /* 4592 * Install the hw-cache-events table: 4593 */ 4594 switch (boot_cpu_data.x86_model) { 4595 case INTEL_FAM6_CORE_YONAH: 4596 pr_cont("Core events, "); 4597 name =3D "core"; 4598 break; 4599 = 4600 case INTEL_FAM6_CORE2_MEROM: 4601 x86_add_quirk(intel_clovertown_quirk); 4602 /* fall through */ 4603 = 4604 case INTEL_FAM6_CORE2_MEROM_L: 4605 case INTEL_FAM6_CORE2_PENRYN: 4606 case INTEL_FAM6_CORE2_DUNNINGTON: 4607 memcpy(hw_cache_event_ids, core2_hw_cache_event_ids, 4608 sizeof(hw_cache_event_ids)); 4609 = 4610 intel_pmu_lbr_init_core(); 4611 = 4612 x86_pmu.event_constraints =3D intel_core2_event_constraints; 4613 x86_pmu.pebs_constraints =3D intel_core2_pebs_event_constraints; 4614 pr_cont("Core2 events, "); 4615 name =3D "core2"; 4616 break; 4617 = 4618 case INTEL_FAM6_NEHALEM: 4619 case INTEL_FAM6_NEHALEM_EP: 4620 case INTEL_FAM6_NEHALEM_EX: 4621 memcpy(hw_cache_event_ids, nehalem_hw_cache_event_ids, 4622 sizeof(hw_cache_event_ids)); 4623 memcpy(hw_cache_extra_regs, nehalem_hw_cache_extra_regs, 4624 sizeof(hw_cache_extra_regs)); 4625 = 4626 intel_pmu_lbr_init_nhm(); 4627 = 4628 x86_pmu.event_constraints =3D intel_nehalem_event_constraints; 4629 x86_pmu.pebs_constraints =3D intel_nehalem_pebs_event_constraints; 4630 x86_pmu.enable_all =3D intel_pmu_nhm_enable_all; 4631 x86_pmu.extra_regs =3D intel_nehalem_extra_regs; 4632 x86_pmu.limit_period =3D nhm_limit_period; 4633 = 4634 mem_attr =3D nhm_mem_events_attrs; 4635 = 4636 /* UOPS_ISSUED.STALLED_CYCLES */ 4637 intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] =3D 4638 X86_CONFIG(.event=3D0x0e, .umask=3D0x01, .inv=3D1, .cmask=3D1); 4639 /* UOPS_EXECUTED.CORE_ACTIVE_CYCLES,c=3D1,i=3D1 */ 4640 intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_BACKEND] =3D 4641 X86_CONFIG(.event=3D0xb1, .umask=3D0x3f, .inv=3D1, .cmask=3D1); 4642 = 4643 intel_pmu_pebs_data_source_nhm(); 4644 x86_add_quirk(intel_nehalem_quirk); 4645 x86_pmu.pebs_no_tlb =3D 1; 4646 extra_attr =3D nhm_format_attr; 4647 = 4648 pr_cont("Nehalem events, "); 4649 name =3D "nehalem"; 4650 break; 4651 = 4652 case INTEL_FAM6_ATOM_BONNELL: 4653 case INTEL_FAM6_ATOM_BONNELL_MID: 4654 case INTEL_FAM6_ATOM_SALTWELL: 4655 case INTEL_FAM6_ATOM_SALTWELL_MID: 4656 case INTEL_FAM6_ATOM_SALTWELL_TABLET: 4657 memcpy(hw_cache_event_ids, atom_hw_cache_event_ids, 4658 sizeof(hw_cache_event_ids)); 4659 = 4660 intel_pmu_lbr_init_atom(); 4661 = 4662 x86_pmu.event_constraints =3D intel_gen_event_constraints; 4663 x86_pmu.pebs_constraints =3D intel_atom_pebs_event_constraints; 4664 x86_pmu.pebs_aliases =3D intel_pebs_aliases_core2; 4665 pr_cont("Atom events, "); 4666 name =3D "bonnell"; 4667 break; 4668 = 4669 case INTEL_FAM6_ATOM_SILVERMONT: 4670 case INTEL_FAM6_ATOM_SILVERMONT_D: 4671 case INTEL_FAM6_ATOM_SILVERMONT_MID: 4672 case INTEL_FAM6_ATOM_AIRMONT: 4673 case INTEL_FAM6_ATOM_AIRMONT_MID: 4674 memcpy(hw_cache_event_ids, slm_hw_cache_event_ids, 4675 sizeof(hw_cache_event_ids)); 4676 memcpy(hw_cache_extra_regs, slm_hw_cache_extra_regs, 4677 sizeof(hw_cache_extra_regs)); 4678 = 4679 intel_pmu_lbr_init_slm(); 4680 = 4681 x86_pmu.event_constraints =3D intel_slm_event_constraints; 4682 x86_pmu.pebs_constraints =3D intel_slm_pebs_event_constraints; 4683 x86_pmu.extra_regs =3D intel_slm_extra_regs; 4684 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4685 td_attr =3D slm_events_attrs; 4686 extra_attr =3D slm_format_attr; 4687 pr_cont("Silvermont events, "); 4688 name =3D "silvermont"; 4689 break; 4690 = 4691 case INTEL_FAM6_ATOM_GOLDMONT: 4692 case INTEL_FAM6_ATOM_GOLDMONT_D: 4693 x86_add_quirk(intel_counter_freezing_quirk); 4694 memcpy(hw_cache_event_ids, glm_hw_cache_event_ids, 4695 sizeof(hw_cache_event_ids)); 4696 memcpy(hw_cache_extra_regs, glm_hw_cache_extra_regs, 4697 sizeof(hw_cache_extra_regs)); 4698 = 4699 intel_pmu_lbr_init_skl(); 4700 = 4701 x86_pmu.event_constraints =3D intel_slm_event_constraints; 4702 x86_pmu.pebs_constraints =3D intel_glm_pebs_event_constraints; 4703 x86_pmu.extra_regs =3D intel_glm_extra_regs; 4704 /* 4705 * It's recommended to use CPU_CLK_UNHALTED.CORE_P + NPEBS 4706 * for precise cycles. 4707 * :pp is identical to :ppp 4708 */ 4709 x86_pmu.pebs_aliases =3D NULL; 4710 x86_pmu.pebs_prec_dist =3D true; 4711 x86_pmu.lbr_pt_coexist =3D true; 4712 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4713 td_attr =3D glm_events_attrs; 4714 extra_attr =3D slm_format_attr; 4715 pr_cont("Goldmont events, "); 4716 name =3D "goldmont"; 4717 break; 4718 = 4719 case INTEL_FAM6_ATOM_GOLDMONT_PLUS: 4720 x86_add_quirk(intel_counter_freezing_quirk); 4721 memcpy(hw_cache_event_ids, glp_hw_cache_event_ids, 4722 sizeof(hw_cache_event_ids)); 4723 memcpy(hw_cache_extra_regs, glp_hw_cache_extra_regs, 4724 sizeof(hw_cache_extra_regs)); 4725 = 4726 intel_pmu_lbr_init_skl(); 4727 = 4728 x86_pmu.event_constraints =3D intel_slm_event_constraints; 4729 x86_pmu.extra_regs =3D intel_glm_extra_regs; 4730 /* 4731 * It's recommended to use CPU_CLK_UNHALTED.CORE_P + NPEBS 4732 * for precise cycles. 4733 */ 4734 x86_pmu.pebs_aliases =3D NULL; 4735 x86_pmu.pebs_prec_dist =3D true; 4736 x86_pmu.lbr_pt_coexist =3D true; 4737 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4738 x86_pmu.flags |=3D PMU_FL_PEBS_ALL; 4739 x86_pmu.get_event_constraints =3D glp_get_event_constraints; 4740 td_attr =3D glm_events_attrs; 4741 /* Goldmont Plus has 4-wide pipeline */ 4742 event_attr_td_total_slots_scale_glm.event_str =3D "4"; 4743 extra_attr =3D slm_format_attr; 4744 pr_cont("Goldmont plus events, "); 4745 name =3D "goldmont_plus"; 4746 break; 4747 = 4748 case INTEL_FAM6_ATOM_TREMONT_D: 4749 x86_pmu.late_ack =3D true; 4750 memcpy(hw_cache_event_ids, glp_hw_cache_event_ids, 4751 sizeof(hw_cache_event_ids)); 4752 memcpy(hw_cache_extra_regs, tnt_hw_cache_extra_regs, 4753 sizeof(hw_cache_extra_regs)); 4754 hw_cache_event_ids[C(ITLB)][C(OP_READ)][C(RESULT_ACCESS)] =3D -1; 4755 = 4756 intel_pmu_lbr_init_skl(); 4757 = 4758 x86_pmu.event_constraints =3D intel_slm_event_constraints; 4759 x86_pmu.extra_regs =3D intel_tnt_extra_regs; 4760 /* 4761 * It's recommended to use CPU_CLK_UNHALTED.CORE_P + NPEBS 4762 * for precise cycles. 4763 */ 4764 x86_pmu.pebs_aliases =3D NULL; 4765 x86_pmu.pebs_prec_dist =3D true; 4766 x86_pmu.lbr_pt_coexist =3D true; 4767 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4768 x86_pmu.get_event_constraints =3D tnt_get_event_constraints; 4769 extra_attr =3D slm_format_attr; 4770 pr_cont("Tremont events, "); 4771 name =3D "Tremont"; 4772 break; 4773 = 4774 case INTEL_FAM6_WESTMERE: 4775 case INTEL_FAM6_WESTMERE_EP: 4776 case INTEL_FAM6_WESTMERE_EX: 4777 memcpy(hw_cache_event_ids, westmere_hw_cache_event_ids, 4778 sizeof(hw_cache_event_ids)); 4779 memcpy(hw_cache_extra_regs, nehalem_hw_cache_extra_regs, 4780 sizeof(hw_cache_extra_regs)); 4781 = 4782 intel_pmu_lbr_init_nhm(); 4783 = 4784 x86_pmu.event_constraints =3D intel_westmere_event_constraints; 4785 x86_pmu.enable_all =3D intel_pmu_nhm_enable_all; 4786 x86_pmu.pebs_constraints =3D intel_westmere_pebs_event_constraints; 4787 x86_pmu.extra_regs =3D intel_westmere_extra_regs; 4788 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4789 = 4790 mem_attr =3D nhm_mem_events_attrs; 4791 = 4792 /* UOPS_ISSUED.STALLED_CYCLES */ 4793 intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] =3D 4794 X86_CONFIG(.event=3D0x0e, .umask=3D0x01, .inv=3D1, .cmask=3D1); 4795 /* UOPS_EXECUTED.CORE_ACTIVE_CYCLES,c=3D1,i=3D1 */ 4796 intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_BACKEND] =3D 4797 X86_CONFIG(.event=3D0xb1, .umask=3D0x3f, .inv=3D1, .cmask=3D1); 4798 = 4799 intel_pmu_pebs_data_source_nhm(); 4800 extra_attr =3D nhm_format_attr; 4801 pr_cont("Westmere events, "); 4802 name =3D "westmere"; 4803 break; 4804 = 4805 case INTEL_FAM6_SANDYBRIDGE: 4806 case INTEL_FAM6_SANDYBRIDGE_X: 4807 x86_add_quirk(intel_sandybridge_quirk); 4808 x86_add_quirk(intel_ht_bug); 4809 memcpy(hw_cache_event_ids, snb_hw_cache_event_ids, 4810 sizeof(hw_cache_event_ids)); 4811 memcpy(hw_cache_extra_regs, snb_hw_cache_extra_regs, 4812 sizeof(hw_cache_extra_regs)); 4813 = 4814 intel_pmu_lbr_init_snb(); 4815 = 4816 x86_pmu.event_constraints =3D intel_snb_event_constraints; 4817 x86_pmu.pebs_constraints =3D intel_snb_pebs_event_constraints; 4818 x86_pmu.pebs_aliases =3D intel_pebs_aliases_snb; 4819 if (boot_cpu_data.x86_model =3D=3D INTEL_FAM6_SANDYBRIDGE_X) 4820 x86_pmu.extra_regs =3D intel_snbep_extra_regs; 4821 else 4822 x86_pmu.extra_regs =3D intel_snb_extra_regs; 4823 = 4824 = 4825 /* all extra regs are per-cpu when HT is on */ 4826 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4827 x86_pmu.flags |=3D PMU_FL_NO_HT_SHARING; 4828 = 4829 td_attr =3D snb_events_attrs; 4830 mem_attr =3D snb_mem_events_attrs; 4831 = 4832 /* UOPS_ISSUED.ANY,c=3D1,i=3D1 to count stall cycles */ 4833 intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] =3D 4834 X86_CONFIG(.event=3D0x0e, .umask=3D0x01, .inv=3D1, .cmask=3D1); 4835 /* UOPS_DISPATCHED.THREAD,c=3D1,i=3D1 to count stall cycles*/ 4836 intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_BACKEND] =3D 4837 X86_CONFIG(.event=3D0xb1, .umask=3D0x01, .inv=3D1, .cmask=3D1); 4838 = 4839 extra_attr =3D nhm_format_attr; 4840 = 4841 pr_cont("SandyBridge events, "); 4842 name =3D "sandybridge"; 4843 break; 4844 = 4845 case INTEL_FAM6_IVYBRIDGE: 4846 case INTEL_FAM6_IVYBRIDGE_X: 4847 x86_add_quirk(intel_ht_bug); 4848 memcpy(hw_cache_event_ids, snb_hw_cache_event_ids, 4849 sizeof(hw_cache_event_ids)); 4850 /* dTLB-load-misses on IVB is different than SNB */ 4851 hw_cache_event_ids[C(DTLB)][C(OP_READ)][C(RESULT_MISS)] =3D 0x8108= ; /* DTLB_LOAD_MISSES.DEMAND_LD_MISS_CAUSES_A_WALK */ 4852 = 4853 memcpy(hw_cache_extra_regs, snb_hw_cache_extra_regs, 4854 sizeof(hw_cache_extra_regs)); 4855 = 4856 intel_pmu_lbr_init_snb(); 4857 = 4858 x86_pmu.event_constraints =3D intel_ivb_event_constraints; 4859 x86_pmu.pebs_constraints =3D intel_ivb_pebs_event_constraints; 4860 x86_pmu.pebs_aliases =3D intel_pebs_aliases_ivb; 4861 x86_pmu.pebs_prec_dist =3D true; 4862 if (boot_cpu_data.x86_model =3D=3D INTEL_FAM6_IVYBRIDGE_X) 4863 x86_pmu.extra_regs =3D intel_snbep_extra_regs; 4864 else 4865 x86_pmu.extra_regs =3D intel_snb_extra_regs; 4866 /* all extra regs are per-cpu when HT is on */ 4867 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4868 x86_pmu.flags |=3D PMU_FL_NO_HT_SHARING; 4869 = 4870 td_attr =3D snb_events_attrs; 4871 mem_attr =3D snb_mem_events_attrs; 4872 = 4873 /* UOPS_ISSUED.ANY,c=3D1,i=3D1 to count stall cycles */ 4874 intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] =3D 4875 X86_CONFIG(.event=3D0x0e, .umask=3D0x01, .inv=3D1, .cmask=3D1); 4876 = 4877 extra_attr =3D nhm_format_attr; 4878 = 4879 pr_cont("IvyBridge events, "); 4880 name =3D "ivybridge"; 4881 break; 4882 = 4883 = 4884 case INTEL_FAM6_HASWELL: 4885 case INTEL_FAM6_HASWELL_X: 4886 case INTEL_FAM6_HASWELL_L: 4887 case INTEL_FAM6_HASWELL_G: 4888 x86_add_quirk(intel_ht_bug); 4889 x86_add_quirk(intel_pebs_isolation_quirk); 4890 x86_pmu.late_ack =3D true; 4891 memcpy(hw_cache_event_ids, hsw_hw_cache_event_ids, sizeof(hw_cache= _event_ids)); 4892 memcpy(hw_cache_extra_regs, hsw_hw_cache_extra_regs, sizeof(hw_cac= he_extra_regs)); 4893 = 4894 intel_pmu_lbr_init_hsw(); 4895 = 4896 x86_pmu.event_constraints =3D intel_hsw_event_constraints; 4897 x86_pmu.pebs_constraints =3D intel_hsw_pebs_event_constraints; 4898 x86_pmu.extra_regs =3D intel_snbep_extra_regs; 4899 x86_pmu.pebs_aliases =3D intel_pebs_aliases_ivb; 4900 x86_pmu.pebs_prec_dist =3D true; 4901 /* all extra regs are per-cpu when HT is on */ 4902 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4903 x86_pmu.flags |=3D PMU_FL_NO_HT_SHARING; 4904 = 4905 x86_pmu.hw_config =3D hsw_hw_config; 4906 x86_pmu.get_event_constraints =3D hsw_get_event_constraints; 4907 x86_pmu.lbr_double_abort =3D true; 4908 extra_attr =3D boot_cpu_has(X86_FEATURE_RTM) ? 4909 hsw_format_attr : nhm_format_attr; 4910 td_attr =3D hsw_events_attrs; 4911 mem_attr =3D hsw_mem_events_attrs; 4912 tsx_attr =3D hsw_tsx_events_attrs; 4913 pr_cont("Haswell events, "); 4914 name =3D "haswell"; 4915 break; 4916 = 4917 case INTEL_FAM6_BROADWELL: 4918 case INTEL_FAM6_BROADWELL_D: 4919 case INTEL_FAM6_BROADWELL_G: 4920 case INTEL_FAM6_BROADWELL_X: 4921 x86_add_quirk(intel_pebs_isolation_quirk); 4922 x86_pmu.late_ack =3D true; 4923 memcpy(hw_cache_event_ids, hsw_hw_cache_event_ids, sizeof(hw_cache= _event_ids)); 4924 memcpy(hw_cache_extra_regs, hsw_hw_cache_extra_regs, sizeof(hw_cac= he_extra_regs)); 4925 = 4926 /* L3_MISS_LOCAL_DRAM is BIT(26) in Broadwell */ 4927 hw_cache_extra_regs[C(LL)][C(OP_READ)][C(RESULT_MISS)] =3D HSW_DEM= AND_READ | 4928 BDW_L3_MISS|HSW_SNOOP_DRAM; 4929 hw_cache_extra_regs[C(LL)][C(OP_WRITE)][C(RESULT_MISS)] =3D HSW_DE= MAND_WRITE|BDW_L3_MISS| 4930 HSW_SNOOP_DRAM; 4931 hw_cache_extra_regs[C(NODE)][C(OP_READ)][C(RESULT_ACCESS)] =3D HSW= _DEMAND_READ| 4932 BDW_L3_MISS_LOCAL|HSW_SNOOP_DRAM; 4933 hw_cache_extra_regs[C(NODE)][C(OP_WRITE)][C(RESULT_ACCESS)] =3D HS= W_DEMAND_WRITE| 4934 BDW_L3_MISS_LOCAL|HSW_SNOOP_DRAM; 4935 = 4936 intel_pmu_lbr_init_hsw(); 4937 = 4938 x86_pmu.event_constraints =3D intel_bdw_event_constraints; 4939 x86_pmu.pebs_constraints =3D intel_bdw_pebs_event_constraints; 4940 x86_pmu.extra_regs =3D intel_snbep_extra_regs; 4941 x86_pmu.pebs_aliases =3D intel_pebs_aliases_ivb; 4942 x86_pmu.pebs_prec_dist =3D true; 4943 /* all extra regs are per-cpu when HT is on */ 4944 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4945 x86_pmu.flags |=3D PMU_FL_NO_HT_SHARING; 4946 = 4947 x86_pmu.hw_config =3D hsw_hw_config; 4948 x86_pmu.get_event_constraints =3D hsw_get_event_constraints; 4949 x86_pmu.limit_period =3D bdw_limit_period; 4950 extra_attr =3D boot_cpu_has(X86_FEATURE_RTM) ? 4951 hsw_format_attr : nhm_format_attr; 4952 td_attr =3D hsw_events_attrs; 4953 mem_attr =3D hsw_mem_events_attrs; 4954 tsx_attr =3D hsw_tsx_events_attrs; 4955 pr_cont("Broadwell events, "); 4956 name =3D "broadwell"; 4957 break; 4958 = 4959 case INTEL_FAM6_XEON_PHI_KNL: 4960 case INTEL_FAM6_XEON_PHI_KNM: 4961 memcpy(hw_cache_event_ids, 4962 slm_hw_cache_event_ids, sizeof(hw_cache_event_ids)); 4963 memcpy(hw_cache_extra_regs, 4964 knl_hw_cache_extra_regs, sizeof(hw_cache_extra_regs)); 4965 intel_pmu_lbr_init_knl(); 4966 = 4967 x86_pmu.event_constraints =3D intel_slm_event_constraints; 4968 x86_pmu.pebs_constraints =3D intel_slm_pebs_event_constraints; 4969 x86_pmu.extra_regs =3D intel_knl_extra_regs; 4970 = 4971 /* all extra regs are per-cpu when HT is on */ 4972 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 4973 x86_pmu.flags |=3D PMU_FL_NO_HT_SHARING; 4974 extra_attr =3D slm_format_attr; 4975 pr_cont("Knights Landing/Mill events, "); 4976 name =3D "knights-landing"; 4977 break; 4978 = 4979 case INTEL_FAM6_SKYLAKE_X: 4980 pmem =3D true; 4981 /* fall through */ 4982 case INTEL_FAM6_SKYLAKE_L: 4983 case INTEL_FAM6_SKYLAKE: 4984 case INTEL_FAM6_KABYLAKE_L: 4985 case INTEL_FAM6_KABYLAKE: > 4986 case INTEL_FAM6_COMETLAKE_L: > 4987 case INTEL_FAM6_COMETLAKE: 4988 x86_add_quirk(intel_pebs_isolation_quirk); 4989 x86_pmu.late_ack =3D true; 4990 memcpy(hw_cache_event_ids, skl_hw_cache_event_ids, sizeof(hw_cache= _event_ids)); 4991 memcpy(hw_cache_extra_regs, skl_hw_cache_extra_regs, sizeof(hw_cac= he_extra_regs)); 4992 intel_pmu_lbr_init_skl(); 4993 = 4994 /* INT_MISC.RECOVERY_CYCLES has umask 1 in Skylake */ 4995 event_attr_td_recovery_bubbles.event_str_noht =3D 4996 "event=3D0xd,umask=3D0x1,cmask=3D1"; 4997 event_attr_td_recovery_bubbles.event_str_ht =3D 4998 "event=3D0xd,umask=3D0x1,cmask=3D1,any=3D1"; 4999 = 5000 x86_pmu.event_constraints =3D intel_skl_event_constraints; 5001 x86_pmu.pebs_constraints =3D intel_skl_pebs_event_constraints; 5002 x86_pmu.extra_regs =3D intel_skl_extra_regs; 5003 x86_pmu.pebs_aliases =3D intel_pebs_aliases_skl; 5004 x86_pmu.pebs_prec_dist =3D true; 5005 /* all extra regs are per-cpu when HT is on */ 5006 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 5007 x86_pmu.flags |=3D PMU_FL_NO_HT_SHARING; 5008 = 5009 x86_pmu.hw_config =3D hsw_hw_config; 5010 x86_pmu.get_event_constraints =3D hsw_get_event_constraints; 5011 extra_attr =3D boot_cpu_has(X86_FEATURE_RTM) ? 5012 hsw_format_attr : nhm_format_attr; 5013 extra_skl_attr =3D skl_format_attr; 5014 td_attr =3D hsw_events_attrs; 5015 mem_attr =3D hsw_mem_events_attrs; 5016 tsx_attr =3D hsw_tsx_events_attrs; 5017 intel_pmu_pebs_data_source_skl(pmem); 5018 = 5019 if (boot_cpu_has(X86_FEATURE_TSX_FORCE_ABORT)) { 5020 x86_pmu.flags |=3D PMU_FL_TFA; 5021 x86_pmu.get_event_constraints =3D tfa_get_event_constraints; 5022 x86_pmu.enable_all =3D intel_tfa_pmu_enable_all; 5023 x86_pmu.commit_scheduling =3D intel_tfa_commit_scheduling; 5024 } 5025 = 5026 pr_cont("Skylake events, "); 5027 name =3D "skylake"; 5028 break; 5029 = 5030 case INTEL_FAM6_ICELAKE_X: 5031 case INTEL_FAM6_ICELAKE_D: 5032 pmem =3D true; 5033 /* fall through */ 5034 case INTEL_FAM6_ICELAKE_L: 5035 case INTEL_FAM6_ICELAKE: 5036 x86_pmu.late_ack =3D true; 5037 memcpy(hw_cache_event_ids, skl_hw_cache_event_ids, sizeof(hw_cache= _event_ids)); 5038 memcpy(hw_cache_extra_regs, skl_hw_cache_extra_regs, sizeof(hw_cac= he_extra_regs)); 5039 hw_cache_event_ids[C(ITLB)][C(OP_READ)][C(RESULT_ACCESS)] =3D -1; 5040 intel_pmu_lbr_init_skl(); 5041 = 5042 x86_pmu.event_constraints =3D intel_icl_event_constraints; 5043 x86_pmu.pebs_constraints =3D intel_icl_pebs_event_constraints; 5044 x86_pmu.extra_regs =3D intel_icl_extra_regs; 5045 x86_pmu.pebs_aliases =3D NULL; 5046 x86_pmu.pebs_prec_dist =3D true; 5047 x86_pmu.flags |=3D PMU_FL_HAS_RSP_1; 5048 x86_pmu.flags |=3D PMU_FL_NO_HT_SHARING; 5049 = 5050 x86_pmu.hw_config =3D hsw_hw_config; 5051 x86_pmu.get_event_constraints =3D icl_get_event_constraints; 5052 extra_attr =3D boot_cpu_has(X86_FEATURE_RTM) ? 5053 hsw_format_attr : nhm_format_attr; 5054 extra_skl_attr =3D skl_format_attr; 5055 mem_attr =3D icl_events_attrs; 5056 tsx_attr =3D icl_tsx_events_attrs; 5057 x86_pmu.rtm_abort_event =3D X86_CONFIG(.event=3D0xca, .umask=3D0x0= 2); 5058 x86_pmu.lbr_pt_coexist =3D true; 5059 intel_pmu_pebs_data_source_skl(pmem); 5060 pr_cont("Icelake events, "); 5061 name =3D "icelake"; 5062 break; 5063 = 5064 default: 5065 switch (x86_pmu.version) { 5066 case 1: 5067 x86_pmu.event_constraints =3D intel_v1_event_constraints; 5068 pr_cont("generic architected perfmon v1, "); 5069 name =3D "generic_arch_v1"; 5070 break; 5071 default: 5072 /* 5073 * default constraints for v2 and up 5074 */ 5075 x86_pmu.event_constraints =3D intel_gen_event_constraints; 5076 pr_cont("generic architected perfmon, "); 5077 name =3D "generic_arch_v2+"; 5078 break; 5079 } 5080 } 5081 = 5082 snprintf(pmu_name_str, sizeof(pmu_name_str), "%s", name); 5083 = 5084 = 5085 group_events_td.attrs =3D td_attr; 5086 group_events_mem.attrs =3D mem_attr; 5087 group_events_tsx.attrs =3D tsx_attr; 5088 group_format_extra.attrs =3D extra_attr; 5089 group_format_extra_skl.attrs =3D extra_skl_attr; 5090 = 5091 x86_pmu.attr_update =3D attr_update; 5092 = 5093 if (x86_pmu.num_counters > INTEL_PMC_MAX_GENERIC) { 5094 WARN(1, KERN_ERR "hw perf events %d > max(%d), clipping!", 5095 x86_pmu.num_counters, INTEL_PMC_MAX_GENERIC); 5096 x86_pmu.num_counters =3D INTEL_PMC_MAX_GENERIC; 5097 } 5098 x86_pmu.intel_ctrl =3D (1ULL << x86_pmu.num_counters) - 1; 5099 = 5100 if (x86_pmu.num_counters_fixed > INTEL_PMC_MAX_FIXED) { 5101 WARN(1, KERN_ERR "hw perf events fixed %d > max(%d), clipping!", 5102 x86_pmu.num_counters_fixed, INTEL_PMC_MAX_FIXED); 5103 x86_pmu.num_counters_fixed =3D INTEL_PMC_MAX_FIXED; 5104 } 5105 = 5106 x86_pmu.intel_ctrl |=3D 5107 ((1LL << x86_pmu.num_counters_fixed)-1) << INTEL_PMC_IDX_FIXED; 5108 = 5109 if (x86_pmu.event_constraints) { 5110 /* 5111 * event on fixed counter2 (REF_CYCLES) only works on this 5112 * counter, so do not extend mask to generic counters 5113 */ 5114 for_each_event_constraint(c, x86_pmu.event_constraints) { 5115 if (c->cmask =3D=3D FIXED_EVENT_FLAGS 5116 && c->idxmsk64 !=3D INTEL_PMC_MSK_FIXED_REF_CYCLES) { 5117 c->idxmsk64 |=3D (1ULL << x86_pmu.num_counters) - 1; 5118 } 5119 c->idxmsk64 &=3D 5120 ~(~0ULL << (INTEL_PMC_IDX_FIXED + x86_pmu.num_counters_fixed)); 5121 c->weight =3D hweight64(c->idxmsk64); 5122 } 5123 } 5124 = 5125 /* 5126 * Access LBR MSR may cause #GP under certain circumstances. 5127 * E.g. KVM doesn't support LBR MSR 5128 * Check all LBT MSR here. 5129 * Disable LBR access if any LBR MSRs can not be accessed. 5130 */ 5131 if (x86_pmu.lbr_nr && !check_msr(x86_pmu.lbr_tos, 0x3UL)) 5132 x86_pmu.lbr_nr =3D 0; 5133 for (i =3D 0; i < x86_pmu.lbr_nr; i++) { 5134 if (!(check_msr(x86_pmu.lbr_from + i, 0xffffUL) && 5135 check_msr(x86_pmu.lbr_to + i, 0xffffUL))) 5136 x86_pmu.lbr_nr =3D 0; 5137 } 5138 = 5139 if (x86_pmu.lbr_nr) 5140 pr_cont("%d-deep LBR, ", x86_pmu.lbr_nr); 5141 = 5142 /* 5143 * Access extra MSR may cause #GP under certain circumstances. 5144 * E.g. KVM doesn't support offcore event 5145 * Check all extra_regs here. 5146 */ 5147 if (x86_pmu.extra_regs) { 5148 for (er =3D x86_pmu.extra_regs; er->msr; er++) { 5149 er->extra_msr_access =3D check_msr(er->msr, 0x11UL); 5150 /* Disable LBR select mapping */ 5151 if ((er->idx =3D=3D EXTRA_REG_LBR) && !er->extra_msr_access) 5152 x86_pmu.lbr_sel_map =3D NULL; 5153 } 5154 } 5155 = 5156 /* Support full width counters using alternative MSR range */ 5157 if (x86_pmu.intel_cap.full_width_write) { 5158 x86_pmu.max_period =3D x86_pmu.cntval_mask >> 1; 5159 x86_pmu.perfctr =3D MSR_IA32_PMC0; 5160 pr_cont("full-width counters, "); 5161 } 5162 = 5163 /* 5164 * For arch perfmon 4 use counter freezing to avoid 5165 * several MSR accesses in the PMI. 5166 */ 5167 if (x86_pmu.counter_freezing) 5168 x86_pmu.handle_irq =3D intel_pmu_handle_irq_v4; 5169 = 5170 return 0; 5171 } 5172 = --- 0-DAY kernel test infrastructure Open Source Technology Cent= er https://lists.01.org/pipermail/kbuild-all Intel Corporati= on --===============2639450936259189702== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 5mgEVbkzdIRqp8fWCQ4UfgDhSF/VDWgAAA== --===============2639450936259189702==--