Write-combine framebuffer writes through user-space mappings, if possible.

Note that KVA mapping of the framebuffer already uses write-combining
mode, so the change, besides improving speed of user mode writes, also
satisfies requirement of the IA32 architecture of using consistent
caching modes for multiple mappings of the same page.

Reported and tested by:	bde
Sponsored by:	The FreeBSD Foundation
MFC after:	 1 week
This commit is contained in:
kib 2017-04-20 15:18:15 +00:00
parent 98ed6b1ee8
commit 698ed7b0d6

View File

@ -1643,6 +1643,9 @@ vesa_mmap(video_adapter_t *adp, vm_ooffset_t offset, vm_paddr_t *paddr,
if (offset > adp->va_window_size - PAGE_SIZE)
return (-1);
*paddr = adp->va_info.vi_buffer + offset;
#ifdef VM_MEMATTR_WRITE_COMBINING
*memattr = VM_MEMATTR_WRITE_COMBINING;
#endif
return (0);
}
return ((*prevvidsw->mmap)(adp, offset, paddr, prot, memattr));