Doing zero-copy stuff in drivers, or "is vm_fault_quick_hold_pages() enough" ?

From: Adrian Chadd <adrian_at_freebsd.org>
Date: Mon, 2 Mar 2015 12:42:42 -0800
Hi,

gonzo_at_ committed a fix (r278615) to the videocore driver for the
raspberry pi. The fix involved doing an explicit wire of pages that
were about to be passed down to the hardware to send to the
videobuffer hardware.

It turns out that doing vm_fault_quick_hold_pages() wasn't enough -
the pages weren't being wired, and they may disappear before the
hardware gets to them.

I looked at vmapbuf() and how it uses vm_fault_quick_hold_pages(), but
I can't find anything that wires the pages down before it hands the
addresses to the hardware.

So, am I missing something about how/where that's done?

Thanks,


-adrian
Received on Mon Mar 02 2015 - 19:42:43 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:56 UTC