Print this page
remove whole-process swapping
Long before Unix supported paging, it used process swapping to reclaim
memory. The code is there and in theory it runs when we get *extremely* low
on memory. In practice, it never runs since the definition of low-on-memory
is antiquated. (XXX: define what antiquated means)
You can check the number of swapout/swapin events with kstats:
$ kstat -p ::vm:swapin ::vm:swapout
@@ -299,14 +299,10 @@
kstat_named_t pgfrec;
kstat_named_t pgin;
kstat_named_t pgpgin;
kstat_named_t pgout;
kstat_named_t pgpgout;
- kstat_named_t swapin;
- kstat_named_t pgswapin;
- kstat_named_t swapout;
- kstat_named_t pgswapout;
kstat_named_t zfod;
kstat_named_t dfree;
kstat_named_t scan;
kstat_named_t rev;
kstat_named_t hat_fault;
@@ -331,14 +327,10 @@
{ "pgfrec", KSTAT_DATA_UINT64 },
{ "pgin", KSTAT_DATA_UINT64 },
{ "pgpgin", KSTAT_DATA_UINT64 },
{ "pgout", KSTAT_DATA_UINT64 },
{ "pgpgout", KSTAT_DATA_UINT64 },
- { "swapin", KSTAT_DATA_UINT64 },
- { "pgswapin", KSTAT_DATA_UINT64 },
- { "swapout", KSTAT_DATA_UINT64 },
- { "pgswapout", KSTAT_DATA_UINT64 },
{ "zfod", KSTAT_DATA_UINT64 },
{ "dfree", KSTAT_DATA_UINT64 },
{ "scan", KSTAT_DATA_UINT64 },
{ "rev", KSTAT_DATA_UINT64 },
{ "hat_fault", KSTAT_DATA_UINT64 },
@@ -2680,17 +2672,14 @@
cpu_t *ocp = tp->t_cpu;
(void) dispdeq(tp);
setbackdq(tp);
/*
- * Either on the bound CPU's disp queue now,
- * or swapped out or on the swap queue.
+ * On the bound CPU's disp queue now.
*/
ASSERT(tp->t_disp_queue == cp->cpu_disp ||
- tp->t_weakbound_cpu == ocp ||
- (tp->t_schedflag & (TS_LOAD | TS_ON_SWAPQ))
- != TS_LOAD);
+ tp->t_weakbound_cpu == ocp);
}
}
}
/*
@@ -3289,14 +3278,10 @@
cvskd->pgfrec.value.ui64 = cvs->pgfrec;
cvskd->pgin.value.ui64 = cvs->pgin;
cvskd->pgpgin.value.ui64 = cvs->pgpgin;
cvskd->pgout.value.ui64 = cvs->pgout;
cvskd->pgpgout.value.ui64 = cvs->pgpgout;
- cvskd->swapin.value.ui64 = cvs->swapin;
- cvskd->pgswapin.value.ui64 = cvs->pgswapin;
- cvskd->swapout.value.ui64 = cvs->swapout;
- cvskd->pgswapout.value.ui64 = cvs->pgswapout;
cvskd->zfod.value.ui64 = cvs->zfod;
cvskd->dfree.value.ui64 = cvs->dfree;
cvskd->scan.value.ui64 = cvs->scan;
cvskd->rev.value.ui64 = cvs->rev;
cvskd->hat_fault.value.ui64 = cvs->hat_fault;
@@ -3419,14 +3404,10 @@
cso->cpu_vminfo.pgfrec = CPU_STATS(cp, vm.pgfrec);
cso->cpu_vminfo.pgin = CPU_STATS(cp, vm.pgin);
cso->cpu_vminfo.pgpgin = CPU_STATS(cp, vm.pgpgin);
cso->cpu_vminfo.pgout = CPU_STATS(cp, vm.pgout);
cso->cpu_vminfo.pgpgout = CPU_STATS(cp, vm.pgpgout);
- cso->cpu_vminfo.swapin = CPU_STATS(cp, vm.swapin);
- cso->cpu_vminfo.pgswapin = CPU_STATS(cp, vm.pgswapin);
- cso->cpu_vminfo.swapout = CPU_STATS(cp, vm.swapout);
- cso->cpu_vminfo.pgswapout = CPU_STATS(cp, vm.pgswapout);
cso->cpu_vminfo.zfod = CPU_STATS(cp, vm.zfod);
cso->cpu_vminfo.dfree = CPU_STATS(cp, vm.dfree);
cso->cpu_vminfo.scan = CPU_STATS(cp, vm.scan);
cso->cpu_vminfo.rev = CPU_STATS(cp, vm.rev);
cso->cpu_vminfo.hat_fault = CPU_STATS(cp, vm.hat_fault);