Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F141098305
D46115.id141492.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
12 KB
Referenced Files
None
Subscribers
None
D46115.id141492.diff
View Options
diff --git a/sys/arm/arm/stack_machdep.c b/sys/arm/arm/stack_machdep.c
--- a/sys/arm/arm/stack_machdep.c
+++ b/sys/arm/arm/stack_machdep.c
@@ -69,8 +69,6 @@
struct unwind_state state;
THREAD_LOCK_ASSERT(td, MA_OWNED);
- KASSERT(!TD_IS_SWAPPED(td),
- ("stack_save_td: thread %p is swapped", td));
if (TD_IS_RUNNING(td))
return (EOPNOTSUPP);
diff --git a/sys/arm64/arm64/stack_machdep.c b/sys/arm64/arm64/stack_machdep.c
--- a/sys/arm64/arm64/stack_machdep.c
+++ b/sys/arm64/arm64/stack_machdep.c
@@ -59,8 +59,6 @@
struct unwind_state frame;
THREAD_LOCK_ASSERT(td, MA_OWNED);
- KASSERT(!TD_IS_SWAPPED(td),
- ("stack_save_td: thread %p is swapped", td));
if (TD_IS_RUNNING(td))
return (EOPNOTSUPP);
diff --git a/sys/ddb/db_ps.c b/sys/ddb/db_ps.c
--- a/sys/ddb/db_ps.c
+++ b/sys/ddb/db_ps.c
@@ -290,8 +290,6 @@
else
strlcat(state, "D", sizeof(state));
}
- if (TD_IS_SWAPPED(td))
- strlcat(state, "W", sizeof(state));
if (TD_AWAITING_INTR(td))
strlcat(state, "I", sizeof(state));
if (TD_IS_SUSPENDED(td))
@@ -393,12 +391,6 @@
db_printf("SUSPENDED");
comma = true;
}
- if (TD_IS_SWAPPED(td)) {
- if (comma)
- db_printf(", ");
- db_printf("SWAPPED");
- comma = true;
- }
if (TD_ON_LOCK(td)) {
if (comma)
db_printf(", ");
diff --git a/sys/gdb/gdb_main.c b/sys/gdb/gdb_main.c
--- a/sys/gdb/gdb_main.c
+++ b/sys/gdb/gdb_main.c
@@ -522,8 +522,6 @@
sbuf_cat(&ctx.qXfer.sb, "Blocked");
else if (TD_IS_SLEEPING(ctx.iter))
sbuf_cat(&ctx.qXfer.sb, "Sleeping");
- else if (TD_IS_SWAPPED(ctx.iter))
- sbuf_cat(&ctx.qXfer.sb, "Swapped");
else if (TD_AWAITING_INTR(ctx.iter))
sbuf_cat(&ctx.qXfer.sb, "IthreadWait");
else if (TD_IS_SUSPENDED(ctx.iter))
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -1140,10 +1140,8 @@
kp->ki_size = vm->vm_map.size;
kp->ki_rssize = vmspace_resident_count(vm); /*XXX*/
- FOREACH_THREAD_IN_PROC(p, td0) {
- if (!TD_IS_SWAPPED(td0))
- kp->ki_rssize += td0->td_kstack_pages;
- }
+ FOREACH_THREAD_IN_PROC(p, td0)
+ kp->ki_rssize += td0->td_kstack_pages;
kp->ki_swrss = vm->vm_swrss;
kp->ki_tsize = vm->vm_tsize;
kp->ki_dsize = vm->vm_dsize;
@@ -2869,9 +2867,7 @@
sizeof(kkstp->kkst_trace), SBUF_FIXEDLEN);
thread_lock(td);
kkstp->kkst_tid = td->td_tid;
- if (TD_IS_SWAPPED(td))
- kkstp->kkst_state = KKST_STATE_SWAPPED;
- else if (stack_save_td(st, td) == 0)
+ if (stack_save_td(st, td) == 0)
kkstp->kkst_state = KKST_STATE_STACKOK;
else
kkstp->kkst_state = KKST_STATE_RUNNING;
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -2791,8 +2791,7 @@
FOREACH_THREAD_IN_PROC(p, td2) {
thread_lock(td2);
ast_sched_locked(td2, TDA_SUSPEND);
- if ((TD_IS_SLEEPING(td2) || TD_IS_SWAPPED(td2)) &&
- (td2->td_flags & TDF_SINTR)) {
+ if (TD_IS_SLEEPING(td2) && (td2->td_flags & TDF_SINTR) != 0) {
if (td2->td_flags & TDF_SBDRY) {
/*
* Once a thread is asleep with
@@ -3579,16 +3578,8 @@
{
PROC_LOCK_ASSERT(p, MA_OWNED);
- if ((p->p_flag & P_WKILLED) == 0) {
+ if ((p->p_flag & P_WKILLED) == 0)
p->p_flag |= P_WKILLED;
- /*
- * Notify swapper that there is a process to swap in.
- * The notification is racy, at worst it would take 10
- * seconds for the swapper process to notice.
- */
- if ((p->p_flag & (P_INMEM | P_SWAPPINGIN)) == 0)
- wakeup(&proc0);
- }
}
/*
diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c
--- a/sys/kern/kern_synch.c
+++ b/sys/kern/kern_synch.c
@@ -558,25 +558,23 @@
}
/*
- * Change thread state to be runnable, placing it on the run queue if
- * it is in memory. If it is swapped out, return true so our caller
- * will know to awaken the swapper.
+ * Change thread state to be runnable, placing it on the run queue.
*
* Requires the thread lock on entry, drops on exit.
*/
int
setrunnable(struct thread *td, int srqflags)
{
- int swapin;
-
THREAD_LOCK_ASSERT(td, MA_OWNED);
KASSERT(td->td_proc->p_state != PRS_ZOMBIE,
("setrunnable: pid %d is a zombie", td->td_proc->p_pid));
- swapin = 0;
switch (TD_GET_STATE(td)) {
case TDS_RUNNING:
case TDS_RUNQ:
+ case TDS_INHIBITED:
+ if ((srqflags & (SRQ_HOLD | SRQ_HOLDTD)) == 0)
+ thread_unlock(td);
break;
case TDS_CAN_RUN:
KASSERT((td->td_flags & TDF_INMEM) != 0,
@@ -584,25 +582,12 @@
td, td->td_flags, td->td_inhibitors));
/* unlocks thread lock according to flags */
sched_wakeup(td, srqflags);
- return (0);
- case TDS_INHIBITED:
- /*
- * If we are only inhibited because we are swapped out
- * arrange to swap in this process.
- */
- if (td->td_inhibitors == TDI_SWAPPED &&
- (td->td_flags & TDF_SWAPINREQ) == 0) {
- td->td_flags |= TDF_SWAPINREQ;
- swapin = 1;
- }
break;
default:
panic("setrunnable: state 0x%x", TD_GET_STATE(td));
}
- if ((srqflags & (SRQ_HOLD | SRQ_HOLDTD)) == 0)
- thread_unlock(td);
- return (swapin);
+ return (0);
}
/*
diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c
--- a/sys/kern/sched_4bsd.c
+++ b/sys/kern/sched_4bsd.c
@@ -998,8 +998,6 @@
td_get_sched(td)->ts_slptime = 0;
if (pri != 0 && PRI_BASE(td->td_pri_class) == PRI_TIMESHARE)
sched_prio(td, pri);
- if (TD_IS_SUSPENDED(td) || pri >= PSOCK)
- td->td_flags |= TDF_CANSWAP;
}
void
@@ -1137,7 +1135,6 @@
THREAD_LOCK_ASSERT(td, MA_OWNED);
ts = td_get_sched(td);
- td->td_flags &= ~TDF_CANSWAP;
if (ts->ts_slptime > 1) {
updatepri(td);
resetpriority(td);
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
--- a/sys/kern/sched_ule.c
+++ b/sys/kern/sched_ule.c
@@ -2334,8 +2334,6 @@
THREAD_LOCK_ASSERT(td, MA_OWNED);
td->td_slptick = ticks;
- if (TD_IS_SUSPENDED(td) || prio >= PSOCK)
- td->td_flags |= TDF_CANSWAP;
if (PRI_BASE(td->td_pri_class) != PRI_TIMESHARE)
return;
if (static_boost == 1 && prio)
@@ -2358,7 +2356,6 @@
THREAD_LOCK_ASSERT(td, MA_OWNED);
ts = td_get_sched(td);
- td->td_flags &= ~TDF_CANSWAP;
/*
* If we slept for more than a tick update our interactivity and
diff --git a/sys/kern/tty_info.c b/sys/kern/tty_info.c
--- a/sys/kern/tty_info.c
+++ b/sys/kern/tty_info.c
@@ -369,12 +369,8 @@
kstacks_val = atomic_load_int(&tty_info_kstacks);
print_kstacks = (kstacks_val != STACK_SBUF_FMT_NONE);
- if (print_kstacks) {
- if (TD_IS_SWAPPED(td))
- sterr = ENOENT;
- else
- sterr = stack_save_td(&stack, td);
- }
+ if (print_kstacks)
+ sterr = stack_save_td(&stack, td);
#endif
thread_unlock(td);
if (p->p_state == PRS_NEW || p->p_state == PRS_ZOMBIE)
diff --git a/sys/powerpc/powerpc/stack_machdep.c b/sys/powerpc/powerpc/stack_machdep.c
--- a/sys/powerpc/powerpc/stack_machdep.c
+++ b/sys/powerpc/powerpc/stack_machdep.c
@@ -91,8 +91,6 @@
vm_offset_t frame;
THREAD_LOCK_ASSERT(td, MA_OWNED);
- KASSERT(!TD_IS_SWAPPED(td),
- ("stack_save_td: thread %p is swapped", td));
if (TD_IS_RUNNING(td))
return (EOPNOTSUPP);
diff --git a/sys/riscv/riscv/stack_machdep.c b/sys/riscv/riscv/stack_machdep.c
--- a/sys/riscv/riscv/stack_machdep.c
+++ b/sys/riscv/riscv/stack_machdep.c
@@ -65,8 +65,6 @@
struct unwind_state frame;
THREAD_LOCK_ASSERT(td, MA_OWNED);
- KASSERT(!TD_IS_SWAPPED(td),
- ("stack_save_td: thread %p is swapped", td));
if (TD_IS_RUNNING(td))
return (EOPNOTSUPP);
diff --git a/sys/sys/proc.h b/sys/sys/proc.h
--- a/sys/sys/proc.h
+++ b/sys/sys/proc.h
@@ -452,7 +452,7 @@
#define TDF_SINTR 0x00000008 /* Sleep is interruptible. */
#define TDF_TIMEOUT 0x00000010 /* Timing out during sleep. */
#define TDF_IDLETD 0x00000020 /* This is a per-CPU idle thread. */
-#define TDF_CANSWAP 0x00000040 /* Thread can be swapped. */
+#define TDF_UNUSED11 0x00000040 /* Available */
#define TDF_SIGWAIT 0x00000080 /* Ignore ignored signals */
#define TDF_KTH_SUSP 0x00000100 /* kthread is suspended */
#define TDF_ALLPROCSUSP 0x00000200 /* suspended by SINGLE_ALLPROC */
@@ -468,7 +468,7 @@
#define TDF_SERESTART 0x00080000 /* ERESTART on stop attempts. */
#define TDF_THRWAKEUP 0x00100000 /* Libthr thread must not suspend itself. */
#define TDF_SEINTR 0x00200000 /* EINTR on stop attempts. */
-#define TDF_SWAPINREQ 0x00400000 /* Swapin request due to wakeup. */
+#define TDF_UNUSED12 0x00400000 /* Available */
#define TDF_UNUSED6 0x00800000 /* Available */
#define TDF_SCHED0 0x01000000 /* Reserved for scheduler private use */
#define TDF_SCHED1 0x02000000 /* Reserved for scheduler private use */
@@ -574,14 +574,12 @@
*/
#define TDI_SUSPENDED 0x0001 /* On suspension queue. */
#define TDI_SLEEPING 0x0002 /* Actually asleep! (tricky). */
-#define TDI_SWAPPED 0x0004 /* Stack not in mem. Bad juju if run. */
#define TDI_LOCK 0x0008 /* Stopped on a lock. */
#define TDI_IWAIT 0x0010 /* Awaiting interrupt. */
#define TD_IS_SLEEPING(td) ((td)->td_inhibitors & TDI_SLEEPING)
#define TD_ON_SLEEPQ(td) ((td)->td_wchan != NULL)
#define TD_IS_SUSPENDED(td) ((td)->td_inhibitors & TDI_SUSPENDED)
-#define TD_IS_SWAPPED(td) ((td)->td_inhibitors & TDI_SWAPPED)
#define TD_ON_LOCK(td) ((td)->td_inhibitors & TDI_LOCK)
#define TD_AWAITING_INTR(td) ((td)->td_inhibitors & TDI_IWAIT)
#ifdef _KERNEL
@@ -602,7 +600,6 @@
#define KTDSTATE(td) \
(((td)->td_inhibitors & TDI_SLEEPING) != 0 ? "sleep" : \
((td)->td_inhibitors & TDI_SUSPENDED) != 0 ? "suspended" : \
- ((td)->td_inhibitors & TDI_SWAPPED) != 0 ? "swapped" : \
((td)->td_inhibitors & TDI_LOCK) != 0 ? "blocked" : \
((td)->td_inhibitors & TDI_IWAIT) != 0 ? "iwait" : "yielding")
@@ -618,14 +615,12 @@
} while (0)
#define TD_SET_SLEEPING(td) TD_SET_INHIB((td), TDI_SLEEPING)
-#define TD_SET_SWAPPED(td) TD_SET_INHIB((td), TDI_SWAPPED)
#define TD_SET_LOCK(td) TD_SET_INHIB((td), TDI_LOCK)
#define TD_SET_SUSPENDED(td) TD_SET_INHIB((td), TDI_SUSPENDED)
#define TD_SET_IWAIT(td) TD_SET_INHIB((td), TDI_IWAIT)
#define TD_SET_EXITING(td) TD_SET_INHIB((td), TDI_EXITING)
#define TD_CLR_SLEEPING(td) TD_CLR_INHIB((td), TDI_SLEEPING)
-#define TD_CLR_SWAPPED(td) TD_CLR_INHIB((td), TDI_SWAPPED)
#define TD_CLR_LOCK(td) TD_CLR_INHIB((td), TDI_LOCK)
#define TD_CLR_SUSPENDED(td) TD_CLR_INHIB((td), TDI_SUSPENDED)
#define TD_CLR_IWAIT(td) TD_CLR_INHIB((td), TDI_IWAIT)
@@ -816,8 +811,7 @@
shortcuts) */
#define P_SUGID 0x00000100 /* Had set id privileges since last
exec. */
-#define P_SYSTEM 0x00000200 /* System proc: no sigs, stats or
- swapping. */
+#define P_SYSTEM 0x00000200 /* System proc: no sigs or stats. */
#define P_SINGLE_EXIT 0x00000400 /* Threads suspending should exit,
not wait. */
#define P_TRACED 0x00000800 /* Debugged process being traced. */
@@ -842,8 +836,8 @@
#define P_INEXEC 0x04000000 /* Process is in execve(). */
#define P_STATCHILD 0x08000000 /* Child process stopped or exited. */
#define P_INMEM 0x10000000 /* Loaded into memory. */
-#define P_SWAPPINGOUT 0x20000000 /* Process is being swapped out. */
-#define P_SWAPPINGIN 0x40000000 /* Process is being swapped in. */
+#define P_UNUSED1 0x20000000 /* --available-- */
+#define P_UNUSED2 0x40000000 /* --available-- */
#define P_PPTRACE 0x80000000 /* PT_TRACEME by vforked child. */
#define P_STOPPED (P_STOPPED_SIG|P_STOPPED_SINGLE|P_STOPPED_TRACE)
@@ -1038,9 +1032,6 @@
_p->p_cowgen - _td->td_cowgen; \
})
-/* Check whether a thread is safe to be swapped out. */
-#define thread_safetoswapout(td) ((td)->td_flags & TDF_CANSWAP)
-
/* Control whether or not it is safe for curthread to sleep. */
#define THREAD_NO_SLEEPING() do { \
curthread->td_no_sleeping++; \
diff --git a/sys/sys/user.h b/sys/sys/user.h
--- a/sys/sys/user.h
+++ b/sys/sys/user.h
@@ -613,7 +613,7 @@
#define KKST_MAXLEN 1024
#define KKST_STATE_STACKOK 0 /* Stack is valid. */
-#define KKST_STATE_SWAPPED 1 /* Stack swapped out. */
+#define KKST_STATE_SWAPPED 1 /* Stack swapped out, obsolete. */
#define KKST_STATE_RUNNING 2 /* Stack ephemeral. */
#if defined(__amd64__) || defined(__i386__)
diff --git a/sys/vm/vm_meter.c b/sys/vm/vm_meter.c
--- a/sys/vm/vm_meter.c
+++ b/sys/vm/vm_meter.c
@@ -189,9 +189,7 @@
thread_lock(td);
switch (TD_GET_STATE(td)) {
case TDS_INHIBITED:
- if (TD_IS_SWAPPED(td))
- total.t_sw++;
- else if (TD_IS_SLEEPING(td)) {
+ if (TD_IS_SLEEPING(td)) {
if (td->td_priority <= PZERO)
total.t_dw++;
else
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -1960,8 +1960,7 @@
if (!TD_ON_RUNQ(td) &&
!TD_IS_RUNNING(td) &&
!TD_IS_SLEEPING(td) &&
- !TD_IS_SUSPENDED(td) &&
- !TD_IS_SWAPPED(td)) {
+ !TD_IS_SUSPENDED(td)) {
thread_unlock(td);
breakout = true;
break;
diff --git a/sys/x86/x86/stack_machdep.c b/sys/x86/x86/stack_machdep.c
--- a/sys/x86/x86/stack_machdep.c
+++ b/sys/x86/x86/stack_machdep.c
@@ -109,8 +109,6 @@
bool done;
THREAD_LOCK_ASSERT(td, MA_OWNED);
- KASSERT(!TD_IS_SWAPPED(td),
- ("stack_save_td: thread %p is swapped", td));
if (TD_IS_RUNNING(td) && td != curthread)
PROC_LOCK_ASSERT(td->td_proc, MA_OWNED);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jan 1, 8:23 PM (8 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27444058
Default Alt Text
D46115.id141492.diff (12 KB)
Attached To
Mode
D46115: vm: Remove kernel stack swapping support, part 4
Attached
Detach File
Event Timeline
Log In to Comment