On Mon, Mar 2, 2015 at 12:42 PM, Adrian Chadd <adrian_at_freebsd.org> wrote: > 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. Then your code is buggy or you've hit a bug in the VM. Holding a page is a short-term wiring. Right above vm_page_hold(): /* * Keep page from being freed by the page daemon * much of the same effect as wiring, except much lower * overhead and should be used only for *very* temporary * holding ("wiring"). */ > 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? Yes. > Thanks, > > > -adrian > _______________________________________________ > freebsd-current_at_freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"Received on Mon Mar 02 2015 - 22:06:00 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:56 UTC