From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [linux-next:master 1642/2142] arch/x86/events/core.c:2114 init_hw_perf_events() warn: missing error code 'err'
Date: Fri, 10 Jun 2022 04:17:45 +0800 [thread overview]
Message-ID: <202206100456.HomFaAeW-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 18656 bytes --]
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Paolo Bonzini <pbonzini@redhat.com>
CC: Like Xu <likexu@tencent.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: ff539ac73ea559a8c146d99ab14bfcaddd30547a
commit: 916e3a4f950eac92c28cc138c10d86514ffebf98 [1642/2142] x86: events: Do not return bogus capabilities if PMU is broken
:::::: branch date: 16 hours ago
:::::: commit date: 27 hours ago
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220610/202206100456.HomFaAeW-lkp(a)intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
arch/x86/events/core.c:2114 init_hw_perf_events() warn: missing error code 'err'
vim +/err +2114 arch/x86/events/core.c
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2078
dda99116969142 arch/x86/kernel/cpu/perf_event.c Yinghai Lu 2011-01-21 2079 static int __init init_hw_perf_events(void)
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2080 {
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2081 struct x86_pmu_quirk *quirk;
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2082 int err;
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2083
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2084 pr_info("Performance Events: ");
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2085
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2086 switch (boot_cpu_data.x86_vendor) {
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2087 case X86_VENDOR_INTEL:
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2088 err = intel_pmu_init();
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2089 break;
f87ad35d37fa54 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2090 case X86_VENDOR_AMD:
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2091 err = amd_pmu_init();
f87ad35d37fa54 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2092 break;
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2093 case X86_VENDOR_HYGON:
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2094 err = amd_pmu_init();
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2095 x86_pmu.name = "HYGON";
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2096 break;
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2097 case X86_VENDOR_ZHAOXIN:
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2098 case X86_VENDOR_CENTAUR:
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2099 err = zhaoxin_pmu_init();
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2100 break;
4138960a9251a2 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2101 default:
8a3da6c7d0031f arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2013-09-28 2102 err = -ENOTSUPP;
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2103 }
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2104 if (err != 0) {
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2105 pr_cont("no PMU driver, software events only.\n");
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2106 err = 0;
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2107 goto out_bad_pmu;
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2108 }
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2109
125580380f4180 arch/x86/kernel/cpu/perf_event.c Cyrill Gorcunov 2009-12-10 2110 pmu_check_apic();
125580380f4180 arch/x86/kernel/cpu/perf_event.c Cyrill Gorcunov 2009-12-10 2111
33c6d6a7ad0ffa arch/x86/kernel/cpu/perf_event.c Don Zickus 2010-11-22 2112 /* sanity check that the hardware exists or is emulated */
fc4b8fca2d8fc8 arch/x86/events/core.c Kan Liang 2021-04-12 2113 if (!check_hw_exists(&pmu, x86_pmu.num_counters, x86_pmu.num_counters_fixed))
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 @2114 goto out_bad_pmu;
33c6d6a7ad0ffa arch/x86/kernel/cpu/perf_event.c Don Zickus 2010-11-22 2115
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2116 pr_cont("%s PMU driver.\n", x86_pmu.name);
faa28ae018ed00 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2117
e97df76377b8b3 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2014-02-05 2118 x86_pmu.attr_rdpmc = 1; /* enable userspace RDPMC usage by default */
e97df76377b8b3 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2014-02-05 2119
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2120 for (quirk = x86_pmu.quirks; quirk; quirk = quirk->next)
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2121 quirk->func();
3c44780b220e87 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-03-04 2122
a1eac7ac903ea9 arch/x86/kernel/cpu/perf_event.c Robert Richter 2012-06-20 2123 if (!x86_pmu.intel_ctrl)
948b1bb89a4456 arch/x86/kernel/cpu/perf_event.c Robert Richter 2010-03-29 2124 x86_pmu.intel_ctrl = (1 << x86_pmu.num_counters) - 1;
241771ef016b5c arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2008-12-03 2125
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2126 perf_events_lapic_init();
9c48f1c629ecfa arch/x86/kernel/cpu/perf_event.c Don Zickus 2011-09-30 2127 register_nmi_handler(NMI_LOCAL, perf_event_nmi_handler, 0, "PMI");
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2128
63b146490befc0 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-01-22 2129 unconstrained = (struct event_constraint)
948b1bb89a4456 arch/x86/kernel/cpu/perf_event.c Robert Richter 2010-03-29 2130 __EVENT_CONSTRAINT(0, (1ULL << x86_pmu.num_counters) - 1,
9fac2cf316b070 arch/x86/kernel/cpu/perf_event.c Stephane Eranian 2013-01-24 2131 0, x86_pmu.num_counters, 0, 0);
63b146490befc0 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-01-22 2132
641cc938815dfd arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-03-15 2133 x86_pmu_format_group.attrs = x86_pmu.format_attrs;
0c9d42ed4cee2a arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-11-20 2134
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2135 if (!x86_pmu.events_sysfs_show)
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2136 x86_pmu_events_group.attrs = &empty_attrs;
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2137
baa0c83363c7aa arch/x86/events/core.c Jiri Olsa 2019-05-12 2138 pmu.attr_update = x86_pmu.attr_update;
6089327f5424f2 arch/x86/events/core.c Kan Liang 2017-05-12 2139
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2140 if (!is_hybrid()) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2141 x86_pmu_show_pmu_cap(x86_pmu.num_counters,
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2142 x86_pmu.num_counters_fixed,
e11c1a7eb302ac arch/x86/events/core.c Kan Liang 2021-04-12 2143 x86_pmu.intel_ctrl);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2144 }
3f6da390539882 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-03-05 2145
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2146 if (!x86_pmu.read)
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2147 x86_pmu.read = _x86_pmu_read;
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2148
abd562df94d19d arch/x86/events/core.c Like Xu 2021-01-25 2149 if (!x86_pmu.guest_get_msrs)
c8e2fe13d1d1f3 arch/x86/events/core.c Sean Christopherson 2021-03-09 2150 x86_pmu.guest_get_msrs = (void *)&__static_call_return0;
abd562df94d19d arch/x86/events/core.c Like Xu 2021-01-25 2151
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2152 x86_pmu_static_call_update();
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2153
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2154 /*
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2155 * Install callbacks. Core will call them for each online
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2156 * cpu.
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2157 */
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2158 err = cpuhp_setup_state(CPUHP_PERF_X86_PREPARE, "perf/x86:prepare",
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2159 x86_pmu_prepare_cpu, x86_pmu_dead_cpu);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2160 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2161 return err;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2162
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2163 err = cpuhp_setup_state(CPUHP_AP_PERF_X86_STARTING,
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2164 "perf/x86:starting", x86_pmu_starting_cpu,
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2165 x86_pmu_dying_cpu);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2166 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2167 goto out;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2168
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2169 err = cpuhp_setup_state(CPUHP_AP_PERF_X86_ONLINE, "perf/x86:online",
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2170 x86_pmu_online_cpu, NULL);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2171 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2172 goto out1;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2173
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2174 if (!is_hybrid()) {
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2175 err = perf_pmu_register(&pmu, "cpu", PERF_TYPE_RAW);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2176 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2177 goto out2;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2178 } else {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2179 u8 cpu_type = get_this_hybrid_cpu_type();
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2180 struct x86_hybrid_pmu *hybrid_pmu;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2181 int i, j;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2182
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2183 if (!cpu_type && x86_pmu.get_hybrid_cpu_type)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2184 cpu_type = x86_pmu.get_hybrid_cpu_type();
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2185
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2186 for (i = 0; i < x86_pmu.num_hybrid_pmus; i++) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2187 hybrid_pmu = &x86_pmu.hybrid_pmu[i];
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2188
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2189 hybrid_pmu->pmu = pmu;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2190 hybrid_pmu->pmu.type = -1;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2191 hybrid_pmu->pmu.attr_update = x86_pmu.attr_update;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2192 hybrid_pmu->pmu.capabilities |= PERF_PMU_CAP_HETEROGENEOUS_CPUS;
55bcf6ef314ae8 arch/x86/events/core.c Kan Liang 2021-04-12 2193 hybrid_pmu->pmu.capabilities |= PERF_PMU_CAP_EXTENDED_HW_TYPE;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2194
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2195 err = perf_pmu_register(&hybrid_pmu->pmu, hybrid_pmu->name,
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2196 (hybrid_pmu->cpu_type == hybrid_big) ? PERF_TYPE_RAW : -1);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2197 if (err)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2198 break;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2199
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2200 if (cpu_type == hybrid_pmu->cpu_type)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2201 x86_pmu_update_cpu_context(&hybrid_pmu->pmu, raw_smp_processor_id());
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2202 }
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2203
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2204 if (i < x86_pmu.num_hybrid_pmus) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2205 for (j = 0; j < i; j++)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2206 perf_pmu_unregister(&x86_pmu.hybrid_pmu[j].pmu);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2207 pr_warn("Failed to register hybrid PMUs\n");
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2208 kfree(x86_pmu.hybrid_pmu);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2209 x86_pmu.hybrid_pmu = NULL;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2210 x86_pmu.num_hybrid_pmus = 0;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2211 goto out2;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2212 }
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2213 }
004417a6d468e2 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-11-25 2214
004417a6d468e2 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-11-25 2215 return 0;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2216
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2217 out2:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2218 cpuhp_remove_state(CPUHP_AP_PERF_X86_ONLINE);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2219 out1:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2220 cpuhp_remove_state(CPUHP_AP_PERF_X86_STARTING);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2221 out:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2222 cpuhp_remove_state(CPUHP_PERF_X86_PREPARE);
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2223 out_bad_pmu:
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2224 memset(&x86_pmu, 0, sizeof(x86_pmu));
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2225 return err;
241771ef016b5c arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2008-12-03 2226 }
004417a6d468e2 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-11-25 2227 early_initcall(init_hw_perf_events);
621a01eac89b5e arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2008-12-11 2228
--
0-DAY CI Kernel Test Service
https://01.org/lkp
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [linux-next:master 1642/2142] arch/x86/events/core.c:2114 init_hw_perf_events() warn: missing error code 'err'
Date: Fri, 10 Jun 2022 09:43:45 +0300 [thread overview]
Message-ID: <202206100456.HomFaAeW-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 18143 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: ff539ac73ea559a8c146d99ab14bfcaddd30547a
commit: 916e3a4f950eac92c28cc138c10d86514ffebf98 [1642/2142] x86: events: Do not return bogus capabilities if PMU is broken
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220610/202206100456.HomFaAeW-lkp(a)intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
arch/x86/events/core.c:2114 init_hw_perf_events() warn: missing error code 'err'
vim +/err +2114 arch/x86/events/core.c
dda99116969142 arch/x86/kernel/cpu/perf_event.c Yinghai Lu 2011-01-21 2079 static int __init init_hw_perf_events(void)
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2080 {
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2081 struct x86_pmu_quirk *quirk;
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2082 int err;
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2083
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2084 pr_info("Performance Events: ");
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2085
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2086 switch (boot_cpu_data.x86_vendor) {
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2087 case X86_VENDOR_INTEL:
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2088 err = intel_pmu_init();
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2089 break;
f87ad35d37fa54 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2090 case X86_VENDOR_AMD:
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2091 err = amd_pmu_init();
f87ad35d37fa54 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2092 break;
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2093 case X86_VENDOR_HYGON:
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2094 err = amd_pmu_init();
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2095 x86_pmu.name = "HYGON";
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2096 break;
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2097 case X86_VENDOR_ZHAOXIN:
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2098 case X86_VENDOR_CENTAUR:
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2099 err = zhaoxin_pmu_init();
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2100 break;
4138960a9251a2 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2101 default:
8a3da6c7d0031f arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2013-09-28 2102 err = -ENOTSUPP;
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2103 }
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2104 if (err != 0) {
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2105 pr_cont("no PMU driver, software events only.\n");
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2106 err = 0;
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2107 goto out_bad_pmu;
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2108 }
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2109
125580380f4180 arch/x86/kernel/cpu/perf_event.c Cyrill Gorcunov 2009-12-10 2110 pmu_check_apic();
125580380f4180 arch/x86/kernel/cpu/perf_event.c Cyrill Gorcunov 2009-12-10 2111
33c6d6a7ad0ffa arch/x86/kernel/cpu/perf_event.c Don Zickus 2010-11-22 2112 /* sanity check that the hardware exists or is emulated */
fc4b8fca2d8fc8 arch/x86/events/core.c Kan Liang 2021-04-12 2113 if (!check_hw_exists(&pmu, x86_pmu.num_counters, x86_pmu.num_counters_fixed))
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 @2114 goto out_bad_pmu;
Hard to tell if this is an error path or not.
33c6d6a7ad0ffa arch/x86/kernel/cpu/perf_event.c Don Zickus 2010-11-22 2115
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2116 pr_cont("%s PMU driver.\n", x86_pmu.name);
faa28ae018ed00 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2117
e97df76377b8b3 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2014-02-05 2118 x86_pmu.attr_rdpmc = 1; /* enable userspace RDPMC usage by default */
e97df76377b8b3 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2014-02-05 2119
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2120 for (quirk = x86_pmu.quirks; quirk; quirk = quirk->next)
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2121 quirk->func();
3c44780b220e87 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-03-04 2122
a1eac7ac903ea9 arch/x86/kernel/cpu/perf_event.c Robert Richter 2012-06-20 2123 if (!x86_pmu.intel_ctrl)
948b1bb89a4456 arch/x86/kernel/cpu/perf_event.c Robert Richter 2010-03-29 2124 x86_pmu.intel_ctrl = (1 << x86_pmu.num_counters) - 1;
241771ef016b5c arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2008-12-03 2125
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2126 perf_events_lapic_init();
9c48f1c629ecfa arch/x86/kernel/cpu/perf_event.c Don Zickus 2011-09-30 2127 register_nmi_handler(NMI_LOCAL, perf_event_nmi_handler, 0, "PMI");
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2128
63b146490befc0 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-01-22 2129 unconstrained = (struct event_constraint)
948b1bb89a4456 arch/x86/kernel/cpu/perf_event.c Robert Richter 2010-03-29 2130 __EVENT_CONSTRAINT(0, (1ULL << x86_pmu.num_counters) - 1,
9fac2cf316b070 arch/x86/kernel/cpu/perf_event.c Stephane Eranian 2013-01-24 2131 0, x86_pmu.num_counters, 0, 0);
63b146490befc0 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-01-22 2132
641cc938815dfd arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-03-15 2133 x86_pmu_format_group.attrs = x86_pmu.format_attrs;
0c9d42ed4cee2a arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-11-20 2134
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2135 if (!x86_pmu.events_sysfs_show)
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2136 x86_pmu_events_group.attrs = &empty_attrs;
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2137
baa0c83363c7aa arch/x86/events/core.c Jiri Olsa 2019-05-12 2138 pmu.attr_update = x86_pmu.attr_update;
6089327f5424f2 arch/x86/events/core.c Kan Liang 2017-05-12 2139
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2140 if (!is_hybrid()) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2141 x86_pmu_show_pmu_cap(x86_pmu.num_counters,
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2142 x86_pmu.num_counters_fixed,
e11c1a7eb302ac arch/x86/events/core.c Kan Liang 2021-04-12 2143 x86_pmu.intel_ctrl);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2144 }
3f6da390539882 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-03-05 2145
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2146 if (!x86_pmu.read)
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2147 x86_pmu.read = _x86_pmu_read;
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2148
abd562df94d19d arch/x86/events/core.c Like Xu 2021-01-25 2149 if (!x86_pmu.guest_get_msrs)
c8e2fe13d1d1f3 arch/x86/events/core.c Sean Christopherson 2021-03-09 2150 x86_pmu.guest_get_msrs = (void *)&__static_call_return0;
abd562df94d19d arch/x86/events/core.c Like Xu 2021-01-25 2151
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2152 x86_pmu_static_call_update();
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2153
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2154 /*
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2155 * Install callbacks. Core will call them for each online
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2156 * cpu.
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2157 */
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2158 err = cpuhp_setup_state(CPUHP_PERF_X86_PREPARE, "perf/x86:prepare",
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2159 x86_pmu_prepare_cpu, x86_pmu_dead_cpu);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2160 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2161 return err;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2162
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2163 err = cpuhp_setup_state(CPUHP_AP_PERF_X86_STARTING,
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2164 "perf/x86:starting", x86_pmu_starting_cpu,
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2165 x86_pmu_dying_cpu);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2166 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2167 goto out;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2168
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2169 err = cpuhp_setup_state(CPUHP_AP_PERF_X86_ONLINE, "perf/x86:online",
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2170 x86_pmu_online_cpu, NULL);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2171 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2172 goto out1;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2173
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2174 if (!is_hybrid()) {
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2175 err = perf_pmu_register(&pmu, "cpu", PERF_TYPE_RAW);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2176 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2177 goto out2;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2178 } else {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2179 u8 cpu_type = get_this_hybrid_cpu_type();
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2180 struct x86_hybrid_pmu *hybrid_pmu;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2181 int i, j;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2182
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2183 if (!cpu_type && x86_pmu.get_hybrid_cpu_type)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2184 cpu_type = x86_pmu.get_hybrid_cpu_type();
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2185
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2186 for (i = 0; i < x86_pmu.num_hybrid_pmus; i++) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2187 hybrid_pmu = &x86_pmu.hybrid_pmu[i];
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2188
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2189 hybrid_pmu->pmu = pmu;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2190 hybrid_pmu->pmu.type = -1;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2191 hybrid_pmu->pmu.attr_update = x86_pmu.attr_update;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2192 hybrid_pmu->pmu.capabilities |= PERF_PMU_CAP_HETEROGENEOUS_CPUS;
55bcf6ef314ae8 arch/x86/events/core.c Kan Liang 2021-04-12 2193 hybrid_pmu->pmu.capabilities |= PERF_PMU_CAP_EXTENDED_HW_TYPE;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2194
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2195 err = perf_pmu_register(&hybrid_pmu->pmu, hybrid_pmu->name,
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2196 (hybrid_pmu->cpu_type == hybrid_big) ? PERF_TYPE_RAW : -1);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2197 if (err)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2198 break;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2199
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2200 if (cpu_type == hybrid_pmu->cpu_type)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2201 x86_pmu_update_cpu_context(&hybrid_pmu->pmu, raw_smp_processor_id());
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2202 }
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2203
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2204 if (i < x86_pmu.num_hybrid_pmus) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2205 for (j = 0; j < i; j++)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2206 perf_pmu_unregister(&x86_pmu.hybrid_pmu[j].pmu);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2207 pr_warn("Failed to register hybrid PMUs\n");
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2208 kfree(x86_pmu.hybrid_pmu);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2209 x86_pmu.hybrid_pmu = NULL;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2210 x86_pmu.num_hybrid_pmus = 0;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2211 goto out2;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2212 }
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2213 }
004417a6d468e2 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-11-25 2214
004417a6d468e2 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-11-25 2215 return 0;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2216
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2217 out2:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2218 cpuhp_remove_state(CPUHP_AP_PERF_X86_ONLINE);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2219 out1:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2220 cpuhp_remove_state(CPUHP_AP_PERF_X86_STARTING);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2221 out:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2222 cpuhp_remove_state(CPUHP_PERF_X86_PREPARE);
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2223 out_bad_pmu:
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2224 memset(&x86_pmu, 0, sizeof(x86_pmu));
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2225 return err;
241771ef016b5c arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2008-12-03 2226 }
--
0-DAY CI Kernel Test Service
https://01.org/lkp
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Paolo Bonzini <pbonzini@redhat.com>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
Linux Memory Management List <linux-mm@kvack.org>,
Like Xu <likexu@tencent.com>
Subject: [linux-next:master 1642/2142] arch/x86/events/core.c:2114 init_hw_perf_events() warn: missing error code 'err'
Date: Fri, 10 Jun 2022 09:43:45 +0300 [thread overview]
Message-ID: <202206100456.HomFaAeW-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: ff539ac73ea559a8c146d99ab14bfcaddd30547a
commit: 916e3a4f950eac92c28cc138c10d86514ffebf98 [1642/2142] x86: events: Do not return bogus capabilities if PMU is broken
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220610/202206100456.HomFaAeW-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
arch/x86/events/core.c:2114 init_hw_perf_events() warn: missing error code 'err'
vim +/err +2114 arch/x86/events/core.c
dda99116969142 arch/x86/kernel/cpu/perf_event.c Yinghai Lu 2011-01-21 2079 static int __init init_hw_perf_events(void)
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2080 {
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2081 struct x86_pmu_quirk *quirk;
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2082 int err;
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2083
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2084 pr_info("Performance Events: ");
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2085
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2086 switch (boot_cpu_data.x86_vendor) {
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2087 case X86_VENDOR_INTEL:
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2088 err = intel_pmu_init();
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2089 break;
f87ad35d37fa54 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2090 case X86_VENDOR_AMD:
72eae04d3a3075 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2091 err = amd_pmu_init();
f87ad35d37fa54 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2092 break;
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2093 case X86_VENDOR_HYGON:
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2094 err = amd_pmu_init();
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2095 x86_pmu.name = "HYGON";
6d0ef316b9f8ea arch/x86/events/core.c Pu Wen 2018-09-23 2096 break;
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2097 case X86_VENDOR_ZHAOXIN:
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2098 case X86_VENDOR_CENTAUR:
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2099 err = zhaoxin_pmu_init();
3a4ac121c2cacb arch/x86/events/core.c CodyYao-oc 2020-04-13 2100 break;
4138960a9251a2 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2101 default:
8a3da6c7d0031f arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2013-09-28 2102 err = -ENOTSUPP;
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2103 }
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2104 if (err != 0) {
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2105 pr_cont("no PMU driver, software events only.\n");
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2106 err = 0;
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2107 goto out_bad_pmu;
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2108 }
b56a3802dc6df2 arch/x86/kernel/cpu/perf_counter.c Jaswinder Singh Rajput 2009-02-27 2109
125580380f4180 arch/x86/kernel/cpu/perf_event.c Cyrill Gorcunov 2009-12-10 2110 pmu_check_apic();
125580380f4180 arch/x86/kernel/cpu/perf_event.c Cyrill Gorcunov 2009-12-10 2111
33c6d6a7ad0ffa arch/x86/kernel/cpu/perf_event.c Don Zickus 2010-11-22 2112 /* sanity check that the hardware exists or is emulated */
fc4b8fca2d8fc8 arch/x86/events/core.c Kan Liang 2021-04-12 2113 if (!check_hw_exists(&pmu, x86_pmu.num_counters, x86_pmu.num_counters_fixed))
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 @2114 goto out_bad_pmu;
Hard to tell if this is an error path or not.
33c6d6a7ad0ffa arch/x86/kernel/cpu/perf_event.c Don Zickus 2010-11-22 2115
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2116 pr_cont("%s PMU driver.\n", x86_pmu.name);
faa28ae018ed00 arch/x86/kernel/cpu/perf_counter.c Robert Richter 2009-04-29 2117
e97df76377b8b3 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2014-02-05 2118 x86_pmu.attr_rdpmc = 1; /* enable userspace RDPMC usage by default */
e97df76377b8b3 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2014-02-05 2119
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2120 for (quirk = x86_pmu.quirks; quirk; quirk = quirk->next)
c1d6f42f1a42c7 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-12-06 2121 quirk->func();
3c44780b220e87 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-03-04 2122
a1eac7ac903ea9 arch/x86/kernel/cpu/perf_event.c Robert Richter 2012-06-20 2123 if (!x86_pmu.intel_ctrl)
948b1bb89a4456 arch/x86/kernel/cpu/perf_event.c Robert Richter 2010-03-29 2124 x86_pmu.intel_ctrl = (1 << x86_pmu.num_counters) - 1;
241771ef016b5c arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2008-12-03 2125
cdd6c482c9ff9c arch/x86/kernel/cpu/perf_event.c Ingo Molnar 2009-09-21 2126 perf_events_lapic_init();
9c48f1c629ecfa arch/x86/kernel/cpu/perf_event.c Don Zickus 2011-09-30 2127 register_nmi_handler(NMI_LOCAL, perf_event_nmi_handler, 0, "PMI");
1123e3ad73697d arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2009-05-29 2128
63b146490befc0 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-01-22 2129 unconstrained = (struct event_constraint)
948b1bb89a4456 arch/x86/kernel/cpu/perf_event.c Robert Richter 2010-03-29 2130 __EVENT_CONSTRAINT(0, (1ULL << x86_pmu.num_counters) - 1,
9fac2cf316b070 arch/x86/kernel/cpu/perf_event.c Stephane Eranian 2013-01-24 2131 0, x86_pmu.num_counters, 0, 0);
63b146490befc0 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-01-22 2132
641cc938815dfd arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-03-15 2133 x86_pmu_format_group.attrs = x86_pmu.format_attrs;
0c9d42ed4cee2a arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2011-11-20 2134
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2135 if (!x86_pmu.events_sysfs_show)
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2136 x86_pmu_events_group.attrs = &empty_attrs;
a47473939db20e arch/x86/kernel/cpu/perf_event.c Jiri Olsa 2012-10-10 2137
baa0c83363c7aa arch/x86/events/core.c Jiri Olsa 2019-05-12 2138 pmu.attr_update = x86_pmu.attr_update;
6089327f5424f2 arch/x86/events/core.c Kan Liang 2017-05-12 2139
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2140 if (!is_hybrid()) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2141 x86_pmu_show_pmu_cap(x86_pmu.num_counters,
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2142 x86_pmu.num_counters_fixed,
e11c1a7eb302ac arch/x86/events/core.c Kan Liang 2021-04-12 2143 x86_pmu.intel_ctrl);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2144 }
3f6da390539882 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-03-05 2145
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2146 if (!x86_pmu.read)
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2147 x86_pmu.read = _x86_pmu_read;
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2148
abd562df94d19d arch/x86/events/core.c Like Xu 2021-01-25 2149 if (!x86_pmu.guest_get_msrs)
c8e2fe13d1d1f3 arch/x86/events/core.c Sean Christopherson 2021-03-09 2150 x86_pmu.guest_get_msrs = (void *)&__static_call_return0;
abd562df94d19d arch/x86/events/core.c Like Xu 2021-01-25 2151
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2152 x86_pmu_static_call_update();
7c9903c9bf716d arch/x86/events/core.c Peter Zijlstra 2020-08-18 2153
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2154 /*
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2155 * Install callbacks. Core will call them for each online
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2156 * cpu.
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2157 */
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2158 err = cpuhp_setup_state(CPUHP_PERF_X86_PREPARE, "perf/x86:prepare",
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2159 x86_pmu_prepare_cpu, x86_pmu_dead_cpu);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2160 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2161 return err;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2162
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2163 err = cpuhp_setup_state(CPUHP_AP_PERF_X86_STARTING,
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2164 "perf/x86:starting", x86_pmu_starting_cpu,
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2165 x86_pmu_dying_cpu);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2166 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2167 goto out;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2168
73c1b41e63f040 arch/x86/events/core.c Thomas Gleixner 2016-12-21 2169 err = cpuhp_setup_state(CPUHP_AP_PERF_X86_ONLINE, "perf/x86:online",
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2170 x86_pmu_online_cpu, NULL);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2171 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2172 goto out1;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2173
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2174 if (!is_hybrid()) {
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2175 err = perf_pmu_register(&pmu, "cpu", PERF_TYPE_RAW);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2176 if (err)
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2177 goto out2;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2178 } else {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2179 u8 cpu_type = get_this_hybrid_cpu_type();
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2180 struct x86_hybrid_pmu *hybrid_pmu;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2181 int i, j;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2182
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2183 if (!cpu_type && x86_pmu.get_hybrid_cpu_type)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2184 cpu_type = x86_pmu.get_hybrid_cpu_type();
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2185
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2186 for (i = 0; i < x86_pmu.num_hybrid_pmus; i++) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2187 hybrid_pmu = &x86_pmu.hybrid_pmu[i];
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2188
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2189 hybrid_pmu->pmu = pmu;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2190 hybrid_pmu->pmu.type = -1;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2191 hybrid_pmu->pmu.attr_update = x86_pmu.attr_update;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2192 hybrid_pmu->pmu.capabilities |= PERF_PMU_CAP_HETEROGENEOUS_CPUS;
55bcf6ef314ae8 arch/x86/events/core.c Kan Liang 2021-04-12 2193 hybrid_pmu->pmu.capabilities |= PERF_PMU_CAP_EXTENDED_HW_TYPE;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2194
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2195 err = perf_pmu_register(&hybrid_pmu->pmu, hybrid_pmu->name,
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2196 (hybrid_pmu->cpu_type == hybrid_big) ? PERF_TYPE_RAW : -1);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2197 if (err)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2198 break;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2199
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2200 if (cpu_type == hybrid_pmu->cpu_type)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2201 x86_pmu_update_cpu_context(&hybrid_pmu->pmu, raw_smp_processor_id());
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2202 }
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2203
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2204 if (i < x86_pmu.num_hybrid_pmus) {
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2205 for (j = 0; j < i; j++)
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2206 perf_pmu_unregister(&x86_pmu.hybrid_pmu[j].pmu);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2207 pr_warn("Failed to register hybrid PMUs\n");
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2208 kfree(x86_pmu.hybrid_pmu);
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2209 x86_pmu.hybrid_pmu = NULL;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2210 x86_pmu.num_hybrid_pmus = 0;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2211 goto out2;
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2212 }
d9977c43bff895 arch/x86/events/core.c Kan Liang 2021-04-12 2213 }
004417a6d468e2 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-11-25 2214
004417a6d468e2 arch/x86/kernel/cpu/perf_event.c Peter Zijlstra 2010-11-25 2215 return 0;
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2216
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2217 out2:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2218 cpuhp_remove_state(CPUHP_AP_PERF_X86_ONLINE);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2219 out1:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2220 cpuhp_remove_state(CPUHP_AP_PERF_X86_STARTING);
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2221 out:
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2222 cpuhp_remove_state(CPUHP_PERF_X86_PREPARE);
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2223 out_bad_pmu:
916e3a4f950eac arch/x86/events/core.c Paolo Bonzini 2022-06-01 2224 memset(&x86_pmu, 0, sizeof(x86_pmu));
95ca792c7582fd arch/x86/events/core.c Thomas Gleixner 2016-07-13 2225 return err;
241771ef016b5c arch/x86/kernel/cpu/perf_counter.c Ingo Molnar 2008-12-03 2226 }
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-06-09 20:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-09 20:17 kernel test robot [this message]
2022-06-10 6:43 ` [linux-next:master 1642/2142] arch/x86/events/core.c:2114 init_hw_perf_events() warn: missing error code 'err' Dan Carpenter
2022-06-10 6:43 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202206100456.HomFaAeW-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.