Subject: Re: mmap() of device
To: None <jonathan@DSG.Stanford.EDU>
From: Chuck Cranor <firstname.lastname@example.org>
Date: 08/07/1997 10:45:46
Jonathan Stone writes:
>The right answer really is to write a pager that can revoke the mmap()
>bindings created by user processes, and re-create them on demand as
>the user processes (or a network peer) faults on the pages.
how do you propose a pager do this revoke operation? looking at the args
of the pagerops functions in vm_pager.h, the pager has no knowledge of
what vm_map/pmap's have mapped its pages. it isn't notified when
a process munmap()'s its memory. and if the memory pages it is using
are not "managed" (e.g. rob's example of a removable nvram card) then
it can't use pmap_page_protect() to zap all mappings of its pages (since
non-managed pages don't have pv_lists).