改一行代码带来的性能改进
FreeBSD先前的vesa framebuffer驱动有个问题,就是滚屏的时候会比较慢。jkim大长辈于是改了一行代码。
好吧,我承认我之前一直以为是console驱动想要锁&Giant的问题。其实真正的原因是默认的pmap_mapdev并不做写合并,所以应该呼叫更低阶的pmap_mapdev_attr并传入PAT_WRITE_COMBINING参数。
现在VESA console的滚屏几乎和文本模式一样了。活到老学到老吧……
在线阅读本文并参与讨论 delphij's Chaos https://blog.delphij.net/posts/2009/09/post-572/