svn commit: r239818 - head/sys/vm
Andrey Zonov
zont at FreeBSD.org
Wed Aug 29 11:23:59 UTC 2012
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.
More information about the svn-src-head
mailing list