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
This commit is contained in:
parent
33c17670af
commit
ce21d4bff1
@ -254,7 +254,7 @@ efi_create_1t1_map(struct efi_md *map, int ndesc, int descsz)
|
||||
vm_page_init_page(m, va, -1);
|
||||
m->order = VM_NFREEORDER + 1; /* invalid */
|
||||
m->pool = VM_NFREEPOOL + 1; /* invalid */
|
||||
pmap_page_set_memattr(m, mode);
|
||||
pmap_page_set_memattr_noflush(m, mode);
|
||||
}
|
||||
}
|
||||
VM_OBJECT_WUNLOCK(obj_1t1_pt);
|
||||
|
Loading…
x
Reference in New Issue
Block a user