diag: remove 31 FK: debug prints from redox-rt fork implementation

Removes all syscall::write(1, b'FK:...') debug trace lines from
fork_impl/fork_inner in redox-rt/src/proc.rs that were polluting
serial output during every fork() call.
This commit is contained in:
Red Bear OS
2026-07-12 05:32:20 +03:00
parent 0ce58a8c0d
commit 58dfd26452
-31
View File
@@ -962,9 +962,7 @@ pub fn create_set_addr_space_buf_for_fork(
/// descriptors from other schemes are reobtained with `dup`, and grants referencing such file
/// descriptors are reobtained through `fmap`. Other mappings are kept but duplicated using CoW.
pub fn fork_impl(args: &ForkArgs<'_>) -> Result<usize> {
let _ = syscall::write(1, b"FK:ENTER\n");
let old_mask = crate::signal::get_sigmask()?;
let _ = syscall::write(1, b"FK:SIG OK\n");
let pid = unsafe {
Error::demux(__relibc_internal_fork_wrapper(
core::ptr::from_ref::<ForkArgs>(args) as usize,
@@ -986,7 +984,6 @@ pub enum ForkArgs<'a> {
}
pub fn fork_inner(initial_rsp: *mut usize, args: &ForkArgs) -> Result<usize> {
let _ = syscall::write(1, b"FK:INNER\n");
let (cur_filetable_fd, new_filetable_fd, new_proc_fd, new_thr_fd, new_pid);
{
@@ -999,7 +996,6 @@ pub fn fork_inner(initial_rsp: *mut usize, args: &ForkArgs) -> Result<usize> {
thr_fd,
pid,
} = new_child_process(args)?;
let _ = syscall::write(1, b"FK:N1\n");
new_proc_fd = proc_fd;
new_thr_fd = thr_fd;
new_pid = pid;
@@ -1008,15 +1004,11 @@ pub fn fork_inner(initial_rsp: *mut usize, args: &ForkArgs) -> Result<usize> {
// parent FDs will not show up for the child).
let scratchpad = {
cur_filetable_fd = cur_thr_fd.dup_into_upper(b"filetable-binary").map_err(|e| {
let _ = syscall::write(1, b"FK:FB\n");
e
})?;
let _ = syscall::write(1, b"FK:F1\n");
new_filetable_fd = cur_filetable_fd.dup_into_upper(b"copy").map_err(|e| {
let _ = syscall::write(1, b"FK:CP\n");
e
})?;
let _ = syscall::write(1, b"FK:F2\n");
// This must be done before the address space is copied.
let proc_fd = new_proc_fd.as_ref().map_or(usize::MAX, |p| p.as_raw_fd());
@@ -1047,21 +1039,15 @@ pub fn fork_inner(initial_rsp: *mut usize, args: &ForkArgs) -> Result<usize> {
// CoW-duplicate address space.
{
let new_addr_space_sel_fd = new_thr_fd.dup_into_upper(b"current-addrspace").map_err(|e| {
let _ = syscall::write(1, b"FK:CA\n");
e
})?;
let _ = syscall::write(1, b"FK:A0\n");
let cur_addr_space_fd = cur_thr_fd.dup_into_upper(b"addrspace").map_err(|e| {
let _ = syscall::write(1, b"FK:AS\n");
e
})?;
let _ = syscall::write(1, b"FK:A1\n");
let new_addr_space_fd = cur_addr_space_fd.dup_into_upper(b"exclusive").map_err(|e| {
let _ = syscall::write(1, b"FK:EX\n");
e
})?;
let _ = syscall::write(1, b"FK:A2\n");
let mut grant_desc_buf = [GrantDesc::default(); 16];
loop {
@@ -1122,7 +1108,6 @@ pub fn fork_inner(initial_rsp: *mut usize, args: &ForkArgs) -> Result<usize> {
)?;
}
}
let _ = syscall::write(1, b"FK:A3\n");
#[cfg(any(
target_arch = "x86_64",
target_arch = "aarch64",
@@ -1141,7 +1126,6 @@ pub fn fork_inner(initial_rsp: *mut usize, args: &ForkArgs) -> Result<usize> {
initial_rsp as usize,
);
new_addr_space_sel_fd.write(&buf)?;
let _ = syscall::write(1, b"FK:A4\n");
}
{
// Reuse the same sigaltstack and signal entry (all memory will be re-mapped CoW later).
@@ -1150,9 +1134,7 @@ pub fn fork_inner(initial_rsp: *mut usize, args: &ForkArgs) -> Result<usize> {
// reference to the TCB and whatever pages stores the signal proc control struct.
{
let new_sighandler_fd = new_thr_fd.dup_into_upper(b"sighandler")?;
let _ = syscall::write(1, b"FK:S0\n");
new_sighandler_fd.write(&crate::signal::current_setsighandler_struct())?;
let _ = syscall::write(1, b"FK:S1\n");
}
if let Some(ref proc_fd) = new_proc_fd {
proc_call(
@@ -1161,47 +1143,37 @@ pub fn fork_inner(initial_rsp: *mut usize, args: &ForkArgs) -> Result<usize> {
CallFlags::empty(),
&[ProcCall::SyncSigPctl as u64],
)?;
let _ = syscall::write(1, b"FK:P1\n");
thread_call(
new_thr_fd.as_raw_fd(),
&mut [],
CallFlags::empty(),
&[ThreadCall::SyncSigTctl as u64],
)?;
let _ = syscall::write(1, b"FK:T1\n");
}
}
{
// Copy environment registers.
let cur_env_regs_fd = cur_thr_fd.dup_into_upper(b"regs/env")?;
let _ = syscall::write(1, b"FK:E0\n");
let new_env_regs_fd = new_thr_fd.dup_into_upper(b"regs/env")?;
let _ = syscall::write(1, b"FK:E1\n");
let mut env_regs = syscall::EnvRegisters::default();
cur_env_regs_fd.read(&mut env_regs)?;
new_env_regs_fd.write(&env_regs)?;
let _ = syscall::write(1, b"FK:E2\n");
}
}
{
// TODO: Use file descriptor forwarding or something similar to avoid copying the file
// table in the kernel.
let new_filetable_sel_fd = new_thr_fd.dup_into_upper(b"current-filetable")?;
let _ = syscall::write(1, b"FK:FT0\n");
new_filetable_sel_fd.write(&usize::to_ne_bytes(new_filetable_fd.as_raw_fd()))?;
let _ = syscall::write(1, b"FK:FT1\n");
}
new_filetable_fd.call_wo(
&new_filetable_fd.as_raw_fd().to_ne_bytes(),
syscall::CallFlags::FD | syscall::CallFlags::FD_CLONE,
&[new_filetable_fd.as_raw_fd() as u64],
)?;
let _ = syscall::write(1, b"FK:FT2\n");
let start_fd = new_thr_fd.dup_into_upper(b"start")?;
let _ = syscall::write(1, b"FK:ST0\n");
start_fd.write(&[0])?;
let _ = syscall::write(1, b"FK:ST1\n");
Ok(new_pid)
}
@@ -1235,7 +1207,6 @@ pub fn new_child_process(args: &ForkArgs<'_>) -> Result<NewChildProc> {
#[cfg(not(feature = "proc"))]
ForkArgs::Init { this_thr_fd, auth } => {
let thr_fd = auth.dup_into_upper(b"new-context").map_err(|e| {
let _ = syscall::write(1, b"FK:NC\n");
e
})?;
let buf = syscall::ProcSchemeAttrs {
@@ -1252,11 +1223,9 @@ pub fn new_child_process(args: &ForkArgs<'_>) -> Result<NewChildProc> {
};
let attr_fd = thr_fd
.dup_into_upper(alloc::format!("auth-{}-attrs", auth.as_raw_fd()).as_bytes()).map_err(|e| {
let _ = syscall::write(1, b"FK:AT\n");
e
})?;
attr_fd.write(&buf).map_err(|e| {
let _ = syscall::write(1, b"FK:WR\n");
e
})?;
Ok(NewChildProc {