函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\cpu\intel.c Create Date:2022-07-27 08:57:52
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:init_intel

函数原型:static void init_intel(struct cpuinfo_x86 *c)

返回类型:void

参数:

类型参数名称
struct cpuinfo_x86 *c
657  early_init_intel(c)
659  intel_workarounds(c)
666  Check for extended topology enumeration cpuid leaf, and if it* exists, use it for populating initial_apicid and cpu topology* detection.
668  如果非cpu_has(c, CPU topology enum extensions )则
673  detect_num_cpu_cores(c)
675  detect_ht(c)
679  init_intel_cacheinfo(c)
681  如果Maximum supported CPUID level, -1=no CPUID: 大于9则
682  eax等于CPUID functions returning a single datum
684  如果eax按位与0xff且eax右移8位按位与0xff的值大于1则set_cpu_cap(c, Intel Architectural PerfMon )
688  如果cpu_has(c, "sse2" )则set_cpu_cap(c, "" LFENCE synchronizes RDTSC )
691  如果boot_cpu_has("dts" Debug Store )则
694  Access to machine-specific registers (available on 586 and better only)* Note: the rd* operations modify the parameters directly (without using* pointer indirection), this allows gcc to optimize better(MSR_IA32_MISC_ENABLE, l1, l2)
695  如果非l1按位与1左移11位的值则set_cpu_cap(c, Branch Trace Store )
697  如果非l1按位与1左移12位的值则set_cpu_cap(c, Precise-Event Based Sampling )
701  如果CPU family 恒等于6且boot_cpu_has(CLFLUSH instruction )且x86_model恒等于29或x86_model恒等于46或x86_model恒等于47的值则set_cpu_bug(c, AAI65, CLFLUSH required before MONITOR )
705  如果CPU family 恒等于6且boot_cpu_has("monitor" MONITOR/MWAIT support )且x86_model恒等于Apollo Lake set_cpu_bug(c, IPI required to wake up remote CPU )
710  如果CPU family 恒等于15则In bytes 等于x86_clflush_size乘2
712  如果CPU family 恒等于6则set_cpu_cap(c, REP microcode works well )
756  srat_detect_node(c)
758  如果cpu_has(c, Hardware virtualization )则detect_vmx_virtcap(c)
761  如果cpu_has(c, Intel Total Memory Encryption )则detect_tme(c)
764  init_intel_misc_features(c)
766  如果tsx_ctrl_state恒等于TSX_CTRL_ENABLEtsx_enable()
768  如果tsx_ctrl_state恒等于TSX_CTRL_DISABLEtsx_disable()