Deleted Added
full compact
vm_map.c (253636) vm_map.c (254025)
1/*-
2 * Copyright (c) 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * The Mach Operating System project at Carnegie-Mellon University.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 49 unchanged lines hidden (view full) ---

58 * rights to redistribute these changes.
59 */
60
61/*
62 * Virtual memory mapping module.
63 */
64
65#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * The Mach Operating System project at Carnegie-Mellon University.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 49 unchanged lines hidden (view full) ---

58 * rights to redistribute these changes.
59 */
60
61/*
62 * Virtual memory mapping module.
63 */
64
65#include <sys/cdefs.h>
66__FBSDID("$FreeBSD: head/sys/vm/vm_map.c 253636 2013-07-25 03:48:37Z kientzle $");
66__FBSDID("$FreeBSD: head/sys/vm/vm_map.c 254025 2013-08-07 06:21:20Z jeff $");
67
68#include <sys/param.h>
69#include <sys/systm.h>
70#include <sys/kernel.h>
71#include <sys/ktr.h>
72#include <sys/lock.h>
73#include <sys/mutex.h>
74#include <sys/proc.h>

--- 117 unchanged lines hidden (view full) ---

192#else
193 NULL,
194#endif
195 vm_map_zinit, vm_map_zfini, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
196 uma_prealloc(mapzone, MAX_KMAP);
197 kmapentzone = uma_zcreate("KMAP ENTRY", sizeof(struct vm_map_entry),
198 NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
199 UMA_ZONE_MTXCLASS | UMA_ZONE_VM);
67
68#include <sys/param.h>
69#include <sys/systm.h>
70#include <sys/kernel.h>
71#include <sys/ktr.h>
72#include <sys/lock.h>
73#include <sys/mutex.h>
74#include <sys/proc.h>

--- 117 unchanged lines hidden (view full) ---

192#else
193 NULL,
194#endif
195 vm_map_zinit, vm_map_zfini, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
196 uma_prealloc(mapzone, MAX_KMAP);
197 kmapentzone = uma_zcreate("KMAP ENTRY", sizeof(struct vm_map_entry),
198 NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
199 UMA_ZONE_MTXCLASS | UMA_ZONE_VM);
200 uma_prealloc(kmapentzone, MAX_KMAPENT);
201 mapentzone = uma_zcreate("MAP ENTRY", sizeof(struct vm_map_entry),
202 NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
200 mapentzone = uma_zcreate("MAP ENTRY", sizeof(struct vm_map_entry),
201 NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
202 vmspace_zone = uma_zcreate("VMSPACE", sizeof(struct vmspace), NULL,
203#ifdef INVARIANTS
204 vmspace_zdtor,
205#else
206 NULL,
207#endif
208 vmspace_zinit, vmspace_zfini, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
203}
204
205static void
206vmspace_zfini(void *mem, int size)
207{
208 struct vmspace *vm;
209
210 vm = (struct vmspace *)mem;

--- 83 unchanged lines hidden (view full) ---

294 vm->vm_dsize = 0;
295 vm->vm_ssize = 0;
296 vm->vm_taddr = 0;
297 vm->vm_daddr = 0;
298 vm->vm_maxsaddr = 0;
299 return (vm);
300}
301
209}
210
211static void
212vmspace_zfini(void *mem, int size)
213{
214 struct vmspace *vm;
215
216 vm = (struct vmspace *)mem;

--- 83 unchanged lines hidden (view full) ---

300 vm->vm_dsize = 0;
301 vm->vm_ssize = 0;
302 vm->vm_taddr = 0;
303 vm->vm_daddr = 0;
304 vm->vm_maxsaddr = 0;
305 return (vm);
306}
307
302void
303vm_init2(void)
304{
305 uma_zone_reserve_kva(kmapentzone, lmin(cnt.v_page_count,
306 (VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS) / PAGE_SIZE) / 8 +
307 maxproc * 2 + maxfiles);
308 vmspace_zone = uma_zcreate("VMSPACE", sizeof(struct vmspace), NULL,
309#ifdef INVARIANTS
310 vmspace_zdtor,
311#else
312 NULL,
313#endif
314 vmspace_zinit, vmspace_zfini, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
315}
316
317static void
318vmspace_container_reset(struct proc *p)
319{
320
321#ifdef RACCT
322 PROC_LOCK(p);
323 racct_set(p, RACCT_DATA, 0);
324 racct_set(p, RACCT_STACK, 0);

--- 1139 unchanged lines hidden (view full) ---

1464 return (KERN_NO_SPACE);
1465 }
1466 switch (find_space) {
1467 case VMFS_ALIGNED_SPACE:
1468 case VMFS_OPTIMAL_SPACE:
1469 pmap_align_superpage(object, offset, addr,
1470 length);
1471 break;
308static void
309vmspace_container_reset(struct proc *p)
310{
311
312#ifdef RACCT
313 PROC_LOCK(p);
314 racct_set(p, RACCT_DATA, 0);
315 racct_set(p, RACCT_STACK, 0);

--- 1139 unchanged lines hidden (view full) ---

1455 return (KERN_NO_SPACE);
1456 }
1457 switch (find_space) {
1458 case VMFS_ALIGNED_SPACE:
1459 case VMFS_OPTIMAL_SPACE:
1460 pmap_align_superpage(object, offset, addr,
1461 length);
1462 break;
1472#ifdef VMFS_TLB_ALIGNED_SPACE
1473 case VMFS_TLB_ALIGNED_SPACE:
1474 pmap_align_tlb(addr);
1475 break;
1476#endif
1477 default:
1478 break;
1479 }
1480
1481 start = *addr;
1482 }
1483 result = vm_map_insert(map, object, offset, start, start +
1484 length, prot, max, cow);
1485 } while (result == KERN_NO_SPACE && (find_space == VMFS_ALIGNED_SPACE ||
1463 default:
1464 break;
1465 }
1466
1467 start = *addr;
1468 }
1469 result = vm_map_insert(map, object, offset, start, start +
1470 length, prot, max, cow);
1471 } while (result == KERN_NO_SPACE && (find_space == VMFS_ALIGNED_SPACE ||
1486#ifdef VMFS_TLB_ALIGNED_SPACE
1487 find_space == VMFS_TLB_ALIGNED_SPACE ||
1488#endif
1489 find_space == VMFS_OPTIMAL_SPACE));
1490 vm_map_unlock(map);
1491 return (result);
1492}
1493
1494/*
1495 * vm_map_simplify_entry:
1496 *

--- 2672 unchanged lines hidden ---
1472 find_space == VMFS_OPTIMAL_SPACE));
1473 vm_map_unlock(map);
1474 return (result);
1475}
1476
1477/*
1478 * vm_map_simplify_entry:
1479 *

--- 2672 unchanged lines hidden ---