DragonFlyBSD/src 831a850sys/platform/pc64/include pmap.h, sys/platform/pc64/vmm ept.c

kernel - VM rework part 15 - Core pmap work, refactor PG_*

* Augment PG_FICTITIOUS.  This takes over some of PG_UNMANAGED's previous
  capabilities.  In addition, the pmap_*() API will work with fictitious
  pages, making mmap() operation (aka of the GPU) more consistent.

* Add PG_UNQUEUED.  This prevents a vm_page from being manipulated in
  the vm_page_queues[] in any way.  This takes over another feature
  of the old PG_UNMANAGED flag.

* Remove PG_UNMANAGED

* Remove PG_DEVICE_IDX.  This is no longer relevant.  We use PG_FICTITIOUS
  for all device pages.

* Refactor vm_contig_pg_alloc(), vm_contig_pg_free(),
  vm_page_alloc_contig(), and vm_page_free_contig().

  These functions now set PG_FICTITIOUS | PG_UNQUEUED on the returned
  pages, and properly clear the bits upon free or if/when a regular
  (but special contig-managed) page is handed over to the normal paging
  system.

  This is combined with making the pmap*() functions work better with
  PG_FICTITIOUS is the primary 'fix' for some of DRMs hacks.
DeltaFile
+70-73sys/vm/vm_page.c
+56-65sys/platform/pc64/x86_64/pmap.c
+47-24sys/vm/vm_page.h
+10-4sys/vm/vm_contig.c
+5-5sys/vm/vm_pageout.c
+4-4sys/vm/device_pager.c
+2-2sys/vm/vm_fault.c
+2-1sys/vm/vm_object.c
+1-1sys/vm/vm_swapcache.c
+1-1sys/platform/pc64/vmm/ept.c
+1-1sys/vm/phys_pager.c
+1-1sys/platform/pc64/include/pmap.h
+200-18212 files

UnifiedSplitRaw