Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\tsc.c Create Date:2022-07-28 07:46:40
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:determine_cpu_tsc_frequencies

Proto:static bool __init determine_cpu_tsc_frequencies(bool early)

Type:bool

Parameter:

TypeParameterName
boolearly
1403  WARN_ON(TSC clocks / usec, not used here || tsc_khz)
1405  If early Then
1406  TSC clocks / usec, not used here = calibrate_cpu()
1407  tsc_khz = calibrate_tsc()
1408  Else
1410  WARN_ON(calibrate_cpu != ative_calibrate_cpu - calibrate the cpu)
1411  TSC clocks / usec, not used here = alibrate cpu using pit, hpet, and ptimer methods. They are available* later in boot after acpi is initialized.
1419  If tsc_khz == 0 Then tsc_khz = TSC clocks / usec, not used here
1421  Else if __builtin_choose_expr(__builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), signedlonglong) || __builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), unsignedlonglong), ({signedlonglong__x = (TSC clocks / usec, not used here - tsc_khz);__x < 0 ? - __x : __x;}), __builtin_choose_expr(__builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), signedlong) || __builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), unsignedlong), ({signedlong__x = (TSC clocks / usec, not used here - tsc_khz);__x < 0 ? - __x : __x;}), __builtin_choose_expr(__builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), signedint) || __builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), unsignedint), ({signedint__x = (TSC clocks / usec, not used here - tsc_khz);__x < 0 ? - __x : __x;}), __builtin_choose_expr(__builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), signedshort) || __builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), unsignedshort), ({signedshort__x = (TSC clocks / usec, not used here - tsc_khz);__x < 0 ? - __x : __x;}), __builtin_choose_expr(__builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), signedchar) || __builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), unsignedchar), ({signedchar__x = (TSC clocks / usec, not used here - tsc_khz);__x < 0 ? - __x : __x;}), __builtin_choose_expr(__builtin_types_compatible_p(typeof(TSC clocks / usec, not used here - tsc_khz), char), (char)({signedchar__x = (TSC clocks / usec, not used here - tsc_khz);__x < 0 ? - __x : __x;}), ((void)0))))))) * 10 > tsc_khz Then TSC clocks / usec, not used here = tsc_khz
1424  If tsc_khz == 0 Then Return false
1427  pr_info("Detected %lu.%03lu MHz processor\n", (unsignedlong)TSC clocks / usec, not used here / KHZ, (unsignedlong)TSC clocks / usec, not used here % KHZ)
1431  If TSC clocks / usec, not used here != tsc_khz Then
1432  pr_info("Detected %lu.%03lu MHz TSC", (unsignedlong)tsc_khz / KHZ, (unsignedlong)tsc_khz % KHZ)
1436  Return true
Caller
NameDescribe
tsc_early_init
tsc_init