View | Details | Raw Unified | Return to bug 259940
Collapse All | Expand All

(-)b/lib/libkvm/kvm_proc.c (+1 lines)
Lines 328-333 kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p, Link Here
328
		(void)kvm_read(kd, (u_long)proc.p_vmspace,
328
		(void)kvm_read(kd, (u_long)proc.p_vmspace,
329
		    (char *)&vmspace, sizeof(vmspace));
329
		    (char *)&vmspace, sizeof(vmspace));
330
		kp->ki_size = vmspace.vm_map.size;
330
		kp->ki_size = vmspace.vm_map.size;
331
		kp->ki_maxsize = vmspace.vm_map.max_size;
331
		/*
332
		/*
332
		 * Approximate the kernel's method of calculating
333
		 * Approximate the kernel's method of calculating
333
		 * this field.
334
		 * this field.
(-)b/sys/compat/freebsd32/freebsd32.h (+1 lines)
Lines 344-349 struct kinfo_proc32 { Link Here
344
	short	ki_spare_short2;
344
	short	ki_spare_short2;
345
	gid_t 	ki_groups[KI_NGROUPS];
345
	gid_t 	ki_groups[KI_NGROUPS];
346
	uint32_t ki_size;
346
	uint32_t ki_size;
347
	uint32_t ki_maxsize;
347
	int32_t ki_rssize;
348
	int32_t ki_rssize;
348
	int32_t ki_swrss;
349
	int32_t ki_swrss;
349
	int32_t ki_tsize;
350
	int32_t ki_tsize;
(-)b/sys/compat/linprocfs/linprocfs.c (+1 lines)
Lines 1117-1122 linprocfs_doprocstatus(PFS_FILL_ARGS) Link Here
1117
	 * implement it. Submissions are welcome.
1117
	 * implement it. Submissions are welcome.
1118
	 */
1118
	 */
1119
	sbuf_printf(sb, "VmSize:\t%8ju kB\n",	B2K((uintmax_t)kp.ki_size));
1119
	sbuf_printf(sb, "VmSize:\t%8ju kB\n",	B2K((uintmax_t)kp.ki_size));
1120
	sbuf_printf(sb, "VmPeak:\t%8ju kB\n",	B2K((uintmax_t)kp.ki_maxsize));
1120
	sbuf_printf(sb, "VmLck:\t%8u kB\n",	P2K(0)); /* XXX */
1121
	sbuf_printf(sb, "VmLck:\t%8u kB\n",	P2K(0)); /* XXX */
1121
	sbuf_printf(sb, "VmRSS:\t%8ju kB\n",	P2K((uintmax_t)kp.ki_rssize));
1122
	sbuf_printf(sb, "VmRSS:\t%8ju kB\n",	P2K((uintmax_t)kp.ki_rssize));
1122
	sbuf_printf(sb, "VmData:\t%8ju kB\n",	P2K((uintmax_t)kp.ki_dsize));
1123
	sbuf_printf(sb, "VmData:\t%8ju kB\n",	P2K((uintmax_t)kp.ki_dsize));
(-)b/sys/kern/kern_proc.c (+2 lines)
Lines 1111-1116 fill_kinfo_proc_only(struct proc *p, struct kinfo_proc *kp) Link Here
1111
		struct vmspace *vm = p->p_vmspace;
1111
		struct vmspace *vm = p->p_vmspace;
1112
1112
1113
		kp->ki_size = vm->vm_map.size;
1113
		kp->ki_size = vm->vm_map.size;
1114
		kp->ki_maxsize = vm->vm_map.max_size;
1114
		kp->ki_rssize = vmspace_resident_count(vm); /*XXX*/
1115
		kp->ki_rssize = vmspace_resident_count(vm); /*XXX*/
1115
		FOREACH_THREAD_IN_PROC(p, td0) {
1116
		FOREACH_THREAD_IN_PROC(p, td0) {
1116
			if (!TD_IS_SWAPPED(td0))
1117
			if (!TD_IS_SWAPPED(td0))
Lines 1422-1427 freebsd32_kinfo_proc_out(const struct kinfo_proc *ki, struct kinfo_proc32 *ki32) Link Here
1422
	for (i = 0; i < KI_NGROUPS; i++)
1423
	for (i = 0; i < KI_NGROUPS; i++)
1423
		CP(*ki, *ki32, ki_groups[i]);
1424
		CP(*ki, *ki32, ki_groups[i]);
1424
	CP(*ki, *ki32, ki_size);
1425
	CP(*ki, *ki32, ki_size);
1426
	CP(*ki, *ki32, ki_maxsize);
1425
	CP(*ki, *ki32, ki_rssize);
1427
	CP(*ki, *ki32, ki_rssize);
1426
	CP(*ki, *ki32, ki_swrss);
1428
	CP(*ki, *ki32, ki_swrss);
1427
	CP(*ki, *ki32, ki_tsize);
1429
	CP(*ki, *ki32, ki_tsize);
(-)b/sys/sys/user.h (-1 / +2 lines)
Lines 87-93 Link Here
87
 * function kvm_proclist in lib/libkvm/kvm_proc.c .
87
 * function kvm_proclist in lib/libkvm/kvm_proc.c .
88
 */
88
 */
89
#define	KI_NSPARE_INT	2
89
#define	KI_NSPARE_INT	2
90
#define	KI_NSPARE_LONG	12
90
#define	KI_NSPARE_LONG	11
91
#define	KI_NSPARE_PTR	5
91
#define	KI_NSPARE_PTR	5
92
92
93
#ifndef _KERNEL
93
#ifndef _KERNEL
Lines 216-221 struct kinfo_proc { Link Here
216
	struct	pwddesc *ki_pd;	/* pointer to process paths info */
216
	struct	pwddesc *ki_pd;	/* pointer to process paths info */
217
	void	*ki_spareptrs[KI_NSPARE_PTR];	/* spare room for growth */
217
	void	*ki_spareptrs[KI_NSPARE_PTR];	/* spare room for growth */
218
	long	ki_sparelongs[KI_NSPARE_LONG];	/* spare room for growth */
218
	long	ki_sparelongs[KI_NSPARE_LONG];	/* spare room for growth */
219
	vm_size_t ki_maxsize;		/* maximum virtual size so far */
219
	long	ki_sflag;		/* PS_* flags */
220
	long	ki_sflag;		/* PS_* flags */
220
	long	ki_tdflags;		/* XXXKSE kthread flag */
221
	long	ki_tdflags;		/* XXXKSE kthread flag */
221
};
222
};
(-)b/sys/vm/vm_map.c (-1 / +7 lines)
Lines 893-898 _vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max) Link Here
893
{
893
{
894
894
895
	map->header.eflags = MAP_ENTRY_HEADER;
895
	map->header.eflags = MAP_ENTRY_HEADER;
896
	map->max_size = 0;
896
	map->needs_wakeup = FALSE;
897
	map->needs_wakeup = FALSE;
897
	map->system_map = 0;
898
	map->system_map = 0;
898
	map->pmap = pmap;
899
	map->pmap = pmap;
Lines 1813-1820 vm_map_insert(vm_map_t map, vm_object_t object, vm_ooffset_t offset, Link Here
1813
	 * Insert the new entry into the list
1814
	 * Insert the new entry into the list
1814
	 */
1815
	 */
1815
	vm_map_entry_link(map, new_entry);
1816
	vm_map_entry_link(map, new_entry);
1816
	if ((new_entry->eflags & MAP_ENTRY_GUARD) == 0)
1817
	if ((new_entry->eflags & MAP_ENTRY_GUARD) == 0) {
1817
		map->size += new_entry->end - new_entry->start;
1818
		map->size += new_entry->end - new_entry->start;
1819
		if (map->size > map->max_size)
1820
			map->max_size = map->size;
1821
	}
1818
1822
1819
	/*
1823
	/*
1820
	 * Try to coalesce the new entry with both the previous and next
1824
	 * Try to coalesce the new entry with both the previous and next
Lines 4220-4225 vmspace_map_entry_forked(const struct vmspace *vm1, struct vmspace *vm2, Link Here
4220
		return;
4224
		return;
4221
	entrysize = entry->end - entry->start;
4225
	entrysize = entry->end - entry->start;
4222
	vm2->vm_map.size += entrysize;
4226
	vm2->vm_map.size += entrysize;
4227
	if (vm2->vm_map.size > vm2->vm_map.max_size)
4228
		vm2->vm_map.max_size = vm2->vm_map.size;
4223
	if (entry->eflags & (MAP_ENTRY_GROWS_DOWN | MAP_ENTRY_GROWS_UP)) {
4229
	if (entry->eflags & (MAP_ENTRY_GROWS_DOWN | MAP_ENTRY_GROWS_UP)) {
4224
		vm2->vm_ssize += btoc(entrysize);
4230
		vm2->vm_ssize += btoc(entrysize);
4225
	} else if (entry->start >= (vm_offset_t)vm1->vm_daddr &&
4231
	} else if (entry->start >= (vm_offset_t)vm1->vm_daddr &&
(-)b/sys/vm/vm_map.h (+1 lines)
Lines 206-211 struct vm_map { Link Here
206
	struct mtx system_mtx;
206
	struct mtx system_mtx;
207
	int nentries;			/* Number of entries */
207
	int nentries;			/* Number of entries */
208
	vm_size_t size;			/* virtual size */
208
	vm_size_t size;			/* virtual size */
209
	vm_size_t max_size;		/* Max of virtual size so far */
209
	u_int timestamp;		/* Version number */
210
	u_int timestamp;		/* Version number */
210
	u_char needs_wakeup;
211
	u_char needs_wakeup;
211
	u_char system_map;		/* (c) Am I a system map? */
212
	u_char system_map;		/* (c) Am I a system map? */

Return to bug 259940