bug fix: some signal testcases may fail

This commit is contained in:
DeathWish5 2022-05-20 19:54:33 +08:00
parent e41bf17a84
commit bba9878981
5 changed files with 6 additions and 10 deletions

View File

@ -15,6 +15,3 @@ exclude = ["zircon-user", "rboot"]
[profile.release]
lto = true
[patch.'https://github.com/DeathWish5/PreemptiveScheduler']
executor = { path = "../../ASYNC/PreemptiveScheduler" }

View File

@ -30,7 +30,7 @@ pub(super) fn super_timer() {
#[no_mangle]
pub extern "C" fn trap_handler(tf: &mut TrapFrame) {
trace!(
debug!(
"Interrupt: {:#x} @ CPU{}",
tf.trap_num,
super::cpu::cpu_id()

View File

@ -8,7 +8,7 @@ use lock::Mutex;
use naive_timer::Timer;
#[allow(dead_code)]
pub(super) const TICKS_PER_SEC: u64 = 10;
pub(super) const TICKS_PER_SEC: u64 = 100;
lazy_static! {
static ref NAIVE_TIMER: Mutex<Timer> = Mutex::new(Timer::default());

View File

@ -79,9 +79,10 @@ async fn run_user(thread: CurrentThread) {
// trace!("ctx = {:#x?}", ctx);
ctx.enter_uspace();
debug!(
"back from user: tid = {} pc = {:x}",
"back from user: tid = {} pc = {:x} trap reason = {:?}",
thread.id(),
ctx.get_field(UserContextField::InstrPointer)
ctx.get_field(UserContextField::InstrPointer),
ctx.trap_reason(),
);
// trace!("ctx = {:#x?}", ctx);
// handle trap/interrupt/syscall
@ -136,7 +137,6 @@ async fn handle_signal(
} else {
(*ctx).setup_uspace(action.handler, sp, &[signal as usize, 0, 0]);
}
(*ctx).enter_uspace();
}
ctx
}

View File

@ -61,8 +61,7 @@ pub fn boot_options() -> BootOptions {
cmdline: cmdline.clone(),
log_level: options.get("LOG").unwrap_or(&"").to_string(),
#[cfg(feature = "linux")]
// root_proc: options.get("ROOTPROC").unwrap_or(&"/bin/busybox?sh").to_string(),
root_proc: options.get("ROOTPROC").unwrap_or(&"/libc-test/src/regression/pthread_cancel-sem_wait-static.exe").to_string(),
root_proc: options.get("ROOTPROC").unwrap_or(&"/bin/busybox?sh").to_string(),
}
}
}