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

(-)b/usr.bin/systat/extern.h (+3 lines)
Lines 165-172 void showtcp(void); Link Here
165
void	 status(void);
165
void	 status(void);
166
void	 suspend(int);
166
void	 suspend(int);
167
char	*sysctl_dynread(const char *, size_t *);
167
char	*sysctl_dynread(const char *, size_t *);
168
void	 sysputpage(WINDOW* , int, int, int, uint64_t, int);
169
void	 sysputspaces(WINDOW* , int, int, int);
168
void	 sysputstrs(WINDOW* , int, int, int);
170
void	 sysputstrs(WINDOW* , int, int, int);
169
void	 sysputuint64(WINDOW* , int, int, int, uint64_t, int);
171
void	 sysputuint64(WINDOW* , int, int, int, uint64_t, int);
172
void	 sysputwuint64(WINDOW* , int, int, int, uint64_t, int);
170
173
171
#define SYSTAT_CMD(name)	\
174
#define SYSTAT_CMD(name)	\
172
	void	 close ## name(WINDOW *); \
175
	void	 close ## name(WINDOW *); \
(-)b/usr.bin/systat/fetch.c (-1 / +3 lines)
Lines 60-68 kvm_ckread(void *a, void *b, int l) Link Here
60
		return (1);
60
		return (1);
61
}
61
}
62
62
63
void getsysctl(const char *name, void *ptr, size_t len)
63
void
64
getsysctl(const char *name, void *ptr, size_t len)
64
{
65
{
65
	size_t nlen = len;
66
	size_t nlen = len;
67
66
	if (sysctlbyname(name, ptr, &nlen, NULL, 0) != 0) {
68
	if (sysctlbyname(name, ptr, &nlen, NULL, 0) != 0) {
67
		error("sysctl(%s...) failed: %s", name,
69
		error("sysctl(%s...) failed: %s", name,
68
		    strerror(errno));
70
		    strerror(errno));
(-)b/usr.bin/systat/sysput.c (-4 / +45 lines)
Lines 41-47 __FBSDID("$FreeBSD$"); Link Here
41
#include "extern.h"
41
#include "extern.h"
42
42
43
void
43
void
44
sysputstrs(WINDOW *wnd, int row, int col, int width)
44
sysputspaces(WINDOW *wd, int row, int col, int width)
45
{
46
	static char str40[] = "                                        ";
47
48
	mvwaddstr(wd, row, col, str40 + sizeof(str40) - width - 1);
49
}
50
51
void
52
sysputstrs(WINDOW *wd, int row, int col, int width)
45
{
53
{
46
	static char str40[] = "****************************************";
54
	static char str40[] = "****************************************";
47
55
Lines 49-55 sysputstrs(WINDOW *wnd, int row, int col, int width) Link Here
49
}
57
}
50
58
51
void
59
void
52
sysputuint64(WINDOW *wnd, int row, int col, int width, uint64_t val, int flags)
60
sysputuint64(WINDOW *wd, int row, int col, int width, uint64_t val, int flags)
53
{
61
{
54
	char unit, *ptr, *start, wrtbuf[width + width + 1];
62
	char unit, *ptr, *start, wrtbuf[width + width + 1];
55
	int len;
63
	int len;
Lines 69-77 sysputuint64(WINDOW *wnd, int row, int col, int width, uint64_t val, int flags) Link Here
69
		memset(wrtbuf + len, ' ', width - len);
77
		memset(wrtbuf + len, ' ', width - len);
70
	start += len;
78
	start += len;
71
79
72
	mvwaddstr(wnd, row, col, start);
80
	mvwaddstr(wd, row, col, start);
73
	return;
81
	return;
74
82
75
error:
83
error:
76
	sysputstrs(wnd, row, col, width);
84
	sysputstrs(wd, row, col, width);
85
}
86
87
void
88
sysputwuint64(WINDOW *wd, int row, int col, int width, uint64_t val, int flags)
89
{
90
	if(val == 0)
91
		sysputspaces(wd, row, col, width);
92
	else
93
		sysputuint64(wd, row, col, width, val, flags);
94
}
95
96
static int
97
calc_page_shift()
98
{
99
	u_int page_size;
100
	int shifts;
101
102
	shifts = 0;
103
	GETSYSCTL("vm.stats.vm.v_page_size", page_size);
104
	for(; page_size > 1; page_size >>= 1)
105
		shifts++;
106
	return shifts;
107
}
108
109
void
110
sysputpage(WINDOW *wd, int row, int col, int width, uint64_t pages, int flags)
111
{
112
	static int shifts = 0;
113
114
	if (shifts == 0)
115
		shifts = calc_page_shift();
116
	pages <<= shifts;
117
	sysputuint64(wd, row, col, width, pages, flags);
77
}
118
}
(-)b/usr.bin/systat/vmstat.c (-23 / +20 lines)
Lines 104-110 static struct Info { Link Here
104
	/*
104
	/*
105
	 * Distribution of page usages.
105
	 * Distribution of page usages.
106
	 */
106
	 */
107
	u_int v_page_size;	/* page size in bytes */
108
	u_int v_free_count;	/* number of pages free */
107
	u_int v_free_count;	/* number of pages free */
109
	u_int v_wire_count;	/* number of pages wired down */
108
	u_int v_wire_count;	/* number of pages wired down */
110
	u_int v_active_count;	/* number of pages active */
109
	u_int v_active_count;	/* number of pages active */
Lines 173-187 closekre(WINDOW *w) Link Here
173
#define STATCOL		 0
172
#define STATCOL		 0
174
#define MEMROW		 2	/* uses 4 rows and 45 cols */
173
#define MEMROW		 2	/* uses 4 rows and 45 cols */
175
#define MEMCOL		 0
174
#define MEMCOL		 0
176
#define PAGEROW		 2	/* uses 4 rows and 30 cols */
175
#define PAGEROW		 1	/* uses 4 rows and 30 cols */
177
#define PAGECOL		47
176
#define PAGECOL		47
178
#define INTSROW		 6	/* uses all rows to bottom and 16 cols */
177
#define INTSROW		 5	/* uses all rows to bottom and 16 cols */
179
#define INTSCOL		64
178
#define INTSCOL		64
180
#define PROCSROW	 6	/* uses 3 rows and 19 cols */
179
#define PROCSROW	 6	/* uses 3 rows and 19 cols */
181
#define PROCSCOL	 0
180
#define PROCSCOL	 0
182
#define GENSTATROW	 7	/* uses 2 rows and 29 cols */
181
#define GENSTATROW	 7	/* uses 2 rows and 29 cols */
183
#define GENSTATCOL	21
182
#define GENSTATCOL	21
184
#define VMSTATROW	 7	/* uses 17 rows and 12-14 cols */
183
#define VMSTATROW	 5	/* uses 17 rows and 12-14 cols */
185
#define VMSTATCOL	49	/* actually 50-51 for some fields */
184
#define VMSTATCOL	49	/* actually 50-51 for some fields */
186
#define GRAPHROW	10	/* uses 3 rows and 49-51 cols */
185
#define GRAPHROW	10	/* uses 3 rows and 49-51 cols */
187
#define GRAPHCOL	 0
186
#define GRAPHCOL	 0
Lines 304-310 labelkre(void) Link Here
304
	clear();
303
	clear();
305
	mvprintw(STATROW, STATCOL + 6, "users    Load");
304
	mvprintw(STATROW, STATCOL + 6, "users    Load");
306
	mvprintw(STATROW + 1, STATCOL + 3, "Mem usage:    %%Phy   %%Kmem");
305
	mvprintw(STATROW + 1, STATCOL + 3, "Mem usage:    %%Phy   %%Kmem");
307
	mvprintw(MEMROW, MEMCOL, "Mem: KB    REAL            VIRTUAL");
306
	mvprintw(MEMROW, MEMCOL, "Mem:       REAL            VIRTUAL");
308
	mvprintw(MEMROW + 1, MEMCOL, "        Tot   Share      Tot    Share");
307
	mvprintw(MEMROW + 1, MEMCOL, "        Tot   Share      Tot    Share");
309
	mvprintw(MEMROW + 2, MEMCOL, "Act");
308
	mvprintw(MEMROW + 2, MEMCOL, "Act");
310
	mvprintw(MEMROW + 3, MEMCOL, "All");
309
	mvprintw(MEMROW + 3, MEMCOL, "All");
Lines 373-379 labelkre(void) Link Here
373
#define PUTRATE(fld, l, c, w) \
372
#define PUTRATE(fld, l, c, w) \
374
do { \
373
do { \
375
	Y(fld); \
374
	Y(fld); \
376
	putint((int)((float)s.fld/etime + 0.5), l, c, w); \
375
	sysputwuint64(wnd, l, c, w, (s.fld/etime + 0.5), 0); \
377
} while (0)
376
} while (0)
378
#define MAXFAIL 5
377
#define MAXFAIL 5
379
378
Lines 454-474 showkre(void) Link Here
454
	putfloat(avenrun[1], STATROW, STATCOL + 26, 5, 2, 0);
453
	putfloat(avenrun[1], STATROW, STATCOL + 26, 5, 2, 0);
455
	putfloat(avenrun[2], STATROW, STATCOL + 32, 5, 2, 0);
454
	putfloat(avenrun[2], STATROW, STATCOL + 32, 5, 2, 0);
456
	mvaddstr(STATROW, STATCOL + 55, buf);
455
	mvaddstr(STATROW, STATCOL + 55, buf);
457
#define pgtokb(pg)	((pg) * (s.v_page_size / 1024))
458
	putfloat(100.0 * (v_page_count - total.t_free) / v_page_count,
456
	putfloat(100.0 * (v_page_count - total.t_free) / v_page_count,
459
	   STATROW + 1, STATCOL + 15, 2, 0, 1);
457
	   STATROW + 1, STATCOL + 15, 2, 0, 1);
460
	putfloat(100.0 * s.v_kmem_map_size / kmem_size,
458
	putfloat(100.0 * s.v_kmem_map_size / kmem_size,
461
	   STATROW + 1, STATCOL + 22, 2, 0, 1);
459
	   STATROW + 1, STATCOL + 22, 2, 0, 1);
462
460
463
	putuint64(pgtokb(total.t_arm), MEMROW + 2, MEMCOL + 4, 7);
461
	sysputpage(wnd, MEMROW + 2, MEMCOL + 4, 7, total.t_arm, 0);
464
	putuint64(pgtokb(total.t_armshr), MEMROW + 2, MEMCOL + 12, 7);
462
	sysputpage(wnd, MEMROW + 2, MEMCOL + 12, 7, total.t_armshr, 0);
465
	putuint64(pgtokb(total.t_avm), MEMROW + 2, MEMCOL + 20, 8);
463
	sysputpage(wnd, MEMROW + 2, MEMCOL + 20, 8, total.t_avm, 0);
466
	putuint64(pgtokb(total.t_avmshr), MEMROW + 2, MEMCOL + 29, 8);
464
	sysputpage(wnd, MEMROW + 2, MEMCOL + 29, 8, total.t_avmshr, 0);
467
	putuint64(pgtokb(total.t_rm), MEMROW + 3, MEMCOL + 4, 7);
465
	sysputpage(wnd, MEMROW + 3, MEMCOL + 4, 7, total.t_rm, 0);
468
	putuint64(pgtokb(total.t_rmshr), MEMROW + 3, MEMCOL + 12, 7);
466
	sysputpage(wnd, MEMROW + 3, MEMCOL + 12, 7, total.t_rmshr, 0);
469
	putuint64(pgtokb(total.t_vm), MEMROW + 3, MEMCOL + 20, 8);
467
	sysputpage(wnd, MEMROW + 3, MEMCOL + 20, 8, total.t_vm, 0);
470
	putuint64(pgtokb(total.t_vmshr), MEMROW + 3, MEMCOL + 29, 8);
468
	sysputpage(wnd, MEMROW + 3, MEMCOL + 29, 8, total.t_vmshr, 0);
471
	putuint64(pgtokb(total.t_free), MEMROW + 2, MEMCOL + 38, 7);
469
	sysputpage(wnd, MEMROW + 2, MEMCOL + 38, 7, total.t_free, 0);
472
	putint(total.t_rq - 1, PROCSROW + 2, PROCSCOL, 3);
470
	putint(total.t_rq - 1, PROCSROW + 2, PROCSCOL, 3);
473
	putint(total.t_pw, PROCSROW + 2, PROCSCOL + 4, 3);
471
	putint(total.t_pw, PROCSROW + 2, PROCSCOL + 4, 3);
474
	putint(total.t_dw, PROCSROW + 2, PROCSCOL + 8, 3);
472
	putint(total.t_dw, PROCSROW + 2, PROCSCOL + 8, 3);
Lines 487-499 showkre(void) Link Here
487
	PUTRATE(v_pdwakeups, VMSTATROW + 9, VMSTATCOL, 8);
485
	PUTRATE(v_pdwakeups, VMSTATROW + 9, VMSTATCOL, 8);
488
	PUTRATE(v_pdpages, VMSTATROW + 10, VMSTATCOL, 8);
486
	PUTRATE(v_pdpages, VMSTATROW + 10, VMSTATCOL, 8);
489
	PUTRATE(v_intrans, VMSTATROW + 11, VMSTATCOL, 8);
487
	PUTRATE(v_intrans, VMSTATROW + 11, VMSTATCOL, 8);
490
	putuint64(pgtokb(s.v_wire_count), VMSTATROW + 12, VMSTATCOL, 8);
488
	sysputpage(wnd, VMSTATROW + 12, VMSTATCOL + 2, 8 - 2, s.v_wire_count, 0);
491
	putuint64(pgtokb(s.v_active_count), VMSTATROW + 13, VMSTATCOL, 8);
489
	sysputpage(wnd, VMSTATROW + 13, VMSTATCOL + 2, 8 - 2, s.v_active_count, 0);
492
	putuint64(pgtokb(s.v_inactive_count), VMSTATROW + 14, VMSTATCOL, 8);
490
	sysputpage(wnd, VMSTATROW + 14, VMSTATCOL + 2, 8 - 2, s.v_inactive_count, 0);
493
	putuint64(pgtokb(s.v_laundry_count), VMSTATROW + 15, VMSTATCOL, 8);
491
	sysputpage(wnd, VMSTATROW + 15, VMSTATCOL + 2, 8 - 2, s.v_laundry_count, 0);
494
	putuint64(pgtokb(s.v_free_count), VMSTATROW + 16, VMSTATCOL, 8);
492
	sysputpage(wnd, VMSTATROW + 16, VMSTATCOL + 2, 8 - 2, s.v_free_count, 0);
495
	if (LINES - 1 > VMSTATROW + 17)
493
	if (LINES - 1 > VMSTATROW + 17)
496
		putuint64(s.bufspace / 1024, VMSTATROW + 17, VMSTATCOL, 8);
494
		sysputuint64(wnd, VMSTATROW + 17, VMSTATCOL + 2, 8 - 2, s.bufspace, 0);
497
	PUTRATE(v_vnodein, PAGEROW + 2, PAGECOL + 6, 5);
495
	PUTRATE(v_vnodein, PAGEROW + 2, PAGECOL + 6, 5);
498
	PUTRATE(v_vnodeout, PAGEROW + 2, PAGECOL + 12, 5);
496
	PUTRATE(v_vnodeout, PAGEROW + 2, PAGECOL + 12, 5);
499
	PUTRATE(v_swapin, PAGEROW + 2, PAGECOL + 19, 5);
497
	PUTRATE(v_swapin, PAGEROW + 2, PAGECOL + 19, 5);
Lines 773-779 getinfo(struct Info *ls) Link Here
773
	GETSYSCTL("vm.stats.vm.v_dfree", ls->v_dfree);
771
	GETSYSCTL("vm.stats.vm.v_dfree", ls->v_dfree);
774
	GETSYSCTL("vm.stats.vm.v_pfree", ls->v_pfree);
772
	GETSYSCTL("vm.stats.vm.v_pfree", ls->v_pfree);
775
	GETSYSCTL("vm.stats.vm.v_tfree", ls->v_tfree);
773
	GETSYSCTL("vm.stats.vm.v_tfree", ls->v_tfree);
776
	GETSYSCTL("vm.stats.vm.v_page_size", ls->v_page_size);
777
	GETSYSCTL("vm.stats.vm.v_free_count", ls->v_free_count);
774
	GETSYSCTL("vm.stats.vm.v_free_count", ls->v_free_count);
778
	GETSYSCTL("vm.stats.vm.v_wire_count", ls->v_wire_count);
775
	GETSYSCTL("vm.stats.vm.v_wire_count", ls->v_wire_count);
779
	GETSYSCTL("vm.stats.vm.v_active_count", ls->v_active_count);
776
	GETSYSCTL("vm.stats.vm.v_active_count", ls->v_active_count);

Return to bug 246458