HomeFreeBSD

amd64 efirt: do not flush cache for runtime pages

Description

amd64 efirt: do not flush cache for runtime pages

We actually do not know is it safe or not to flush cache for random
BAR/register page existing in the system. It is well-known that for
instance LAPICs cannot tolerate cache flush. As report indicates,
there are more such devices.

This issue typically affects AMD machines which do not report self-snoop,
causing real CLFLUSH invocation on the mapped pages. Intels do self-snoop,
so this change should be nop for them, and unsafe devices, if any, are
already ignored.

Reported and tested by: manu
Reviewed by: alc, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D32318

Details

Provenance
kibAuthored on Oct 5 2021, 2:14 PM
Reviewer
alc
Differential Revision
D32318: amd64 efirt: do not flush cache for runtime pages
Parents
rG33c17670afdb: amd64: add pmap_page_set_memattr_noflush()
Branches
Unknown
Tags
Unknown