Author: zont
Date: Wed Aug 29 11:23:59 2012
New Revision: 239818
URL: http://svn.freebsd.org/changeset/base/239818

Log:
  - Don't take an account of locked memory for current process in vslock(9).
  
  There are two consumers of vslock(9): sysctl code and drm driver.  These
  consumers are using locked memory as transient memory, it doesn't belong
  to a process's memory.
  
  Suggested by: avg
  Reviewed by:  alc
  Approved by:  kib (mentor)
  MFC after:    2 weeks

Modified:
  head/sys/vm/vm_glue.c

Modified: head/sys/vm/vm_glue.c
==============================================================================
--- head/sys/vm/vm_glue.c       Wed Aug 29 11:23:20 2012        (r239817)
+++ head/sys/vm/vm_glue.c       Wed Aug 29 11:23:59 2012        (r239818)
@@ -183,7 +183,6 @@ int
 vslock(void *addr, size_t len)
 {
        vm_offset_t end, last, start;
-       unsigned long nsize;
        vm_size_t npages;
        int error;
 
@@ -195,18 +194,6 @@ vslock(void *addr, size_t len)
        npages = atop(end - start);
        if (npages > vm_page_max_wired)
                return (ENOMEM);
-       PROC_LOCK(curproc);
-       nsize = ptoa(npages +
-           pmap_wired_count(vm_map_pmap(&curproc->p_vmspace->vm_map)));
-       if (nsize > lim_cur(curproc, RLIMIT_MEMLOCK)) {
-               PROC_UNLOCK(curproc);
-               return (ENOMEM);
-       }
-       if (racct_set(curproc, RACCT_MEMLOCK, nsize)) {
-               PROC_UNLOCK(curproc);
-               return (ENOMEM);
-       }
-       PROC_UNLOCK(curproc);
 #if 0
        /*
         * XXX - not yet
@@ -222,14 +209,6 @@ vslock(void *addr, size_t len)
 #endif
        error = vm_map_wire(&curproc->p_vmspace->vm_map, start, end,
            VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES);
-#ifdef RACCT
-       if (error != KERN_SUCCESS) {
-               PROC_LOCK(curproc);
-               racct_set(curproc, RACCT_MEMLOCK, 
-                   
ptoa(pmap_wired_count(vm_map_pmap(&curproc->p_vmspace->vm_map))));
-               PROC_UNLOCK(curproc);
-       }
-#endif
        /*
         * Return EFAULT on error to match copy{in,out}() behaviour
         * rather than returning ENOMEM like mlock() would.
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to