Skip to content

Commit bb3ab81

Browse files
mike-travissuryasaimadhu
authored andcommitted
x86/platform/uv: Update TSC sync state for UV5
The UV5 platform synchronizes the TSCs among all chassis, and will not proceed to OS boot without achieving synchronization. Previous UV platforms provided a register indicating successful synchronization. This is no longer available on UV5. On this platform TSC_ADJUST should not be reset by the kernel. Signed-off-by: Mike Travis <[email protected]> Signed-off-by: Steve Wahl <[email protected]> Signed-off-by: Borislav Petkov <[email protected]> Reviewed-by: Dimitri Sivanich <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent d812f7c commit bb3ab81

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

arch/x86/kernel/apic/x2apic_uv_x.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,13 @@ static void __init uv_tsc_check_sync(void)
199199
int mmr_shift;
200200
char *state;
201201

202-
/* Different returns from different UV BIOS versions */
202+
/* UV5 guarantees synced TSCs; do not zero TSC_ADJUST */
203+
if (!is_uv(UV2|UV3|UV4)) {
204+
mark_tsc_async_resets("UV5+");
205+
return;
206+
}
207+
208+
/* UV2,3,4, UV BIOS TSC sync state available */
203209
mmr = uv_early_read_mmr(UVH_TSC_SYNC_MMR);
204210
mmr_shift =
205211
is_uv2_hub() ? UVH_TSC_SYNC_SHIFT_UV2K : UVH_TSC_SYNC_SHIFT;

0 commit comments

Comments
 (0)