Page MenuHomeFreeBSD

Handle Skylake-X errata SKZ63.
ClosedPublic

Authored by kib on Apr 7 2018, 11:50 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Dec 18, 10:17 PM
Unknown Object (File)
Nov 21 2024, 4:22 PM
Unknown Object (File)
Nov 21 2024, 4:22 PM
Unknown Object (File)
Nov 21 2024, 4:22 PM
Unknown Object (File)
Nov 21 2024, 4:22 PM
Unknown Object (File)
Nov 21 2024, 4:02 PM
Unknown Object (File)
Oct 27 2024, 7:28 AM
Unknown Object (File)
Oct 1 2024, 9:26 PM
Subscribers

Details

Summary
SKZ63     Processor May Hang When Executing Code In an HLE Transaction Region

Problem:  Under certain conditions, if the processor acquires an HLE (Hardware Lock Elision) lock via the XACQUIRE instruction in the Host Physical Address range between 40000000H  and 403FFFFFH, it may hang with an internal timeout error (MCACOD 0400H) logged into IA32_MCi_STATUS.

Implication: Due to this erratum, the processor may hang after acquiring a lock via XACQUIRE.

Workaround: BIOS can reserve the host physical address ranges of 40000000H and 403FFFFFH (e.g. map it as UC/MMIO). Alternatively, the VMM (Virtual Machine Monitor) can reserve that address range so no guest can use it. In non-virtualized systems, the OS can reserve that memory space.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kib edited the summary of this revision. (Show Details)
markj added inline comments.
sys/amd64/amd64/pmap.c
1295 ↗(On Diff #41227)

Missing a period.

sys/vm/vm_page.h
479 ↗(On Diff #41227)

Why boolean_t? bootverbose is an int and this header already uses bool.

This revision is now accepted and ready to land.Apr 7 2018, 3:36 PM
kib marked an inline comment as done.Apr 7 2018, 3:51 PM
kib added inline comments.
sys/vm/vm_page.h
479 ↗(On Diff #41227)

vm_phys_unfree_page() returns int, I tried to be slightly more consistent with the internal interfaces.

Changed both arg and result to bool.

This revision now requires review to proceed.Apr 7 2018, 3:51 PM
markj added inline comments.
sys/vm/vm_page.c
353 ↗(On Diff #41234)

Can use the bool literal here.

This revision is now accepted and ready to land.Apr 7 2018, 4:02 PM
This revision was automatically updated to reflect the committed changes.