函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:tsc_refine_calibration_work

函数原型:static void tsc_refine_calibration_work(struct work_struct *work)

返回类型:void

参数:

类型参数名称
struct work_struct *work
1292  tsc_start等于ULLONG_MAX
1299  如果TSC can be unstable due to cpufreq or due to unsynced TSCs则转到:unreg
1307  如果tsc_start恒等于ULLONG_MAX
1308  restart :
1313  hpet等于is_hpet_enabled()
1314  tsc_start等于Read TSC and the reference counters. Take care of any disturbances
1315  在延迟工作队列中放置任务
1316  返回
1319  tsc_stop等于Read TSC and the reference counters. Take care of any disturbances
1322  如果ref_start恒等于ref_stop则转到:out
1326  如果tsc_stop恒等于ULLONG_MAX则转到:restart
1329  delta等于tsc_stoptsc_start
1330  delta乘等于1000000LL
1331  如果hpetfreq等于Calculate the TSC frequency from HPET reference
1333  否则freq等于Calculate the TSC frequency from PMTimer reference
1337  如果abs - return absolute value of an argument*@x: the value. If it is unsigned type, it is converted to signed type first.* char is treated as if it was signed (regardless of whether it really is)* but the macro's return type is preserved as char.(tsc_khz - freq)大于tsc_khz除100则转到:out
1340  tsc_khz等于freq
1341  打印信息("Refined TSC clocksource calibration: %lu.%03lu MHz\n", (unsignedlong)tsc_khz / 1000, (unsignedlong)tsc_khz % 1000)
1346  lapic_update_tsc_freq()
1349  遍历可用CPU(cpu)
1350  set_cyc2ns_scale(tsc_khz, cpu, tsc_stop)
1352  out :
1353  如果TSC can be unstable due to cpufreq or due to unsynced TSCs则转到:unreg
1356  如果boot_cpu_has(Always running timer (ART) )则art_related_clocksource等于Must mark VALID_FOR_HRES early such that when we unregister tsc_early* this one will immediately take over. We will only register if TSC has* been found good.
1358  clocksource_register_khz( & Must mark VALID_FOR_HRES early such that when we unregister tsc_early* this one will immediately take over. We will only register if TSC has* been found good., tsc_khz)
1359  unreg :
1360  clocksource_unregister( & .mask MUST be CLOCKSOURCE_MASK(64). See comment above read_tsc())