[Bug 2150] New: #AC split lock caused by exception handler #ac


bugzilla-daemon at bugzilla.tianocore.org...
 

https://bugzilla.tianocore.org/show_bug.cgi?id=2150

Bug ID: 2150
Summary: #AC split lock caused by exception handler
Product: EDK2
Version: Current
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Lowest
Component: Code
Assignee: michael.d.kinney(a)intel.com
Reporter: john.e.lofgren(a)intel.com
CC: edk2-bugs(a)lists.01.org

#AC split locks stalls have a heavy cost on execution time, even when only
running on one active core.

#AC split lock is being caused in
UefiCpuPkg\Library\CpuExceptionHandlerLib\X64\ExceptionHandlerAsm.nasm

sidt saves 8-byte base and 2-byte limit to memory. xchg is used to separate
limit and base. sgdt saves 8-byte base and 2-byte limit to memory. xchg is
used to separate limit and base. xchg is atomic so if it operand crosses cache
line it will cause a #AC split lock. To stop it from crossing cache line, we
can use xchg with 32-bit operand instead of 64-bit operand to separate base and
limit.

--
You are receiving this mail because:
You are on the CC list for the bug.