1*0cd1ca46SRavi Bangoria // SPDX-License-Identifier: GPL-2.0 2*0cd1ca46SRavi Bangoria #include "linux/string.h" 3*0cd1ca46SRavi Bangoria #include "util/env.h" 4*0cd1ca46SRavi Bangoria #include "env.h" 5*0cd1ca46SRavi Bangoria 6*0cd1ca46SRavi Bangoria bool x86__is_amd_cpu(void) 7*0cd1ca46SRavi Bangoria { 8*0cd1ca46SRavi Bangoria struct perf_env env = { .total_mem = 0, }; 9*0cd1ca46SRavi Bangoria static int is_amd; /* 0: Uninitialized, 1: Yes, -1: No */ 10*0cd1ca46SRavi Bangoria 11*0cd1ca46SRavi Bangoria if (is_amd) 12*0cd1ca46SRavi Bangoria goto ret; 13*0cd1ca46SRavi Bangoria 14*0cd1ca46SRavi Bangoria perf_env__cpuid(&env); 15*0cd1ca46SRavi Bangoria is_amd = env.cpuid && strstarts(env.cpuid, "AuthenticAMD") ? 1 : -1; 16*0cd1ca46SRavi Bangoria 17*0cd1ca46SRavi Bangoria ret: 18*0cd1ca46SRavi Bangoria return is_amd >= 1 ? true : false; 19*0cd1ca46SRavi Bangoria } 20