[PATCH v2] x86: Check RTM_ALWAYS_ABORT for RTM [BZ #28033]

Florian Weimer fweimer@redhat.com
Fri Jul 2 08:40:13 GMT 2021


* H. J. Lu:

>> > Any idea why the microcode update doesn't just clear the RPM bit in
>> > CPUID?  This is a bit awkward.
>>
>> I asked it internally.
>
> Here it is
>
> ---
>
> VMM vendors told us that clearing CPUID bits during ucode load is an absolute
> no-go and caused a lot of SW instability in the past (also related to
> VM migration
> challenges where one system has the bit and the other does not).
> ---

I thought we had early microcode loading for that.

This new approach requires patching *everything*, not just glibc.  For
example, I have a feeling that qemu-kvm does not pass through the
RTM_ALWAYS_ABORT CPU flag to guests, even though

With your patch, I still see

FAIL: string/tst-memchr-rtm
FAIL: string/tst-memcmp-rtm
FAIL: string/tst-memmove-rtm
FAIL: string/tst-memrchr-rtm
FAIL: string/tst-memset-rtm
FAIL: string/tst-strchr-rtm
FAIL: string/tst-strcpy-rtm
FAIL: string/tst-strlen-rtm
FAIL: string/tst-strncmp-rtm
FAIL: string/tst-strrchr-rtm

error: ../sysdeps/x86/tst-string-rtm.h:63: TSX abort rate: 100.00% (3000 out of 3000)

on a virtualized guest on a machine with this CPU:

cpu family      : 6
model           : 158
model name      : Intel(R) Xeon(R) CPU E3-1240 v6 @ 3.70GHz
stepping        : 9
microcode       : 0xea

This started after a recent microcode update.

Thanks,
Florian



More information about the Libc-alpha mailing list