DragonFlyBSD/src f16f912sys/dev/drm drm_vm.c, sys/dev/drm/ttm ttm_page_alloc.c

kernel - VM rework part 14 - Core pmap work, stabilize for X/drm

* Don't gratuitously change the vm_page flags in the drm code.

  The vm_phys_fictitious_reg_range() code in drm_vm.c was clearing
  PG_UNMANAGED.  It was only luck that this worked before, but
  because these are faked pages, PG_UNMANAGED must be set or the
  system will implode trying to convert the physical address back
  to a vm_page in certain routines.

  The ttm code was setting PG_FICTITIOUS in order to prevent the
  page from getting into the active or inactive queues (they had
  a conditional test for PG_FICTITIOUS).  But ttm never cleared
  the bit before freeing the page.  Remove the hack and instead
  fix it in vm_page.c

* in vm_object_terminate(), allow the case where there are still
  wired pages in a OBJT_MGTDEVICE object that has wound up on a
  queue (don't complain about it).  This situation arises because the
  ttm code uses the contig malloc API which returns wired pages.

  NOTE: vm_page_activate()/vm_page_deactivate() are allowed to mess
        with wired pages.  Wired pages are not anything 'special' to
        the queues, which allows us to avoid messing with the queues
        when pages are assigned to the buffer cache.
DeltaFile
+0-85sys/platform/pc64/x86_64/pmap.c
+31-5sys/vm/vm_page.c
+3-4sys/dev/drm/ttm/ttm_page_alloc.c
+1-1sys/vm/device_pager.c
+0-1sys/dev/drm/drm_vm.c
+35-965 files

UnifiedSplitRaw