FreeBSD: Set MAP_NOSYNC on mmaps.
authorRobert Noland <rnoland@2hip.net>
Tue, 24 Feb 2009 02:01:26 +0000 (20:01 -0600)
committerRobert Noland <rnoland@2hip.net>
Tue, 24 Feb 2009 02:07:44 +0000 (20:07 -0600)
There is no reason to gratuitously sync these maps to swap.

bsd-core/drm_bufs.c

index 303b240..ebc46b5 100644 (file)
@@ -1050,10 +1050,10 @@ int drm_mapbufs(struct drm_device *dev, void *data, struct drm_file *file_priv)
        vaddr = round_page((vm_offset_t)vms->vm_daddr + MAXDSIZ);
 #if __FreeBSD_version >= 600023
        retcode = vm_mmap(&vms->vm_map, &vaddr, size, PROT_READ | PROT_WRITE,
-           VM_PROT_ALL, MAP_SHARED, OBJT_DEVICE, dev->devnode, foff);
+           VM_PROT_ALL, MAP_SHARED | MAP_NOSYNC, OBJT_DEVICE, dev->devnode, foff);
 #else
        retcode = vm_mmap(&vms->vm_map, &vaddr, size, PROT_READ | PROT_WRITE,
-           VM_PROT_ALL, MAP_SHARED, SLIST_FIRST(&dev->devnode->si_hlist),
+           VM_PROT_ALL, MAP_SHARED | MAP_NOSYNC, SLIST_FIRST(&dev->devnode->si_hlist),
            foff);
 #endif
        if (retcode)