amd64: Ignore 1GB mappings in pmap_advise()
This assertion can be triggered by usermode since vm_map_madvise() doesn't force advice to be applied to an entire largepage mapping. I can't see any reason not to permit it, however, since MADV_DONTNEED and _FREE are advisory and we can simply do nothing when a 1GB mapping is encountered. Reviewed by: alc, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D36675
This commit is contained in:
parent
6c2e9f4c32
commit
4551cbbe99
@ -9013,13 +9013,8 @@ pmap_advise(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, int advice)
|
||||
pdpe = pmap_pml4e_to_pdpe(pml4e, sva);
|
||||
if ((*pdpe & PG_V) == 0)
|
||||
continue;
|
||||
if ((*pdpe & PG_PS) != 0) {
|
||||
KASSERT(va_next <= eva,
|
||||
("partial update of non-transparent 1G mapping "
|
||||
"pdpe %#lx sva %#lx eva %#lx va_next %#lx",
|
||||
*pdpe, sva, eva, va_next));
|
||||
if ((*pdpe & PG_PS) != 0)
|
||||
continue;
|
||||
}
|
||||
|
||||
va_next = (sva + NBPDR) & ~PDRMASK;
|
||||
if (va_next < sva)
|
||||
|
Loading…
x
Reference in New Issue
Block a user