/DragonOS/kernel/src/arch/x86_64/process/ |
H A D | idle.rs | 9 sched::{SchedMode, __schedule}, 18 __schedule(SchedMode::SM_NONE); in arch_idle_func()
|
/DragonOS/docs/kernel/sched/ |
H A D | core.md | 49 - 参数:这两个函数都需要提供一个参数:``SchedMode``。用于控制此次调度的行为,可选参数主要有以下两个: 50 …- ``SchedMode::SM_NONE``: 标志当前进程没有被抢占而是主动让出,他**不会**被再次加入队列,直到有其他进程主动唤醒它,这个标志位主要用于信号量、等待队列以及一些主动唤醒场… 51 …- ``SchedMode::SM_PREEMPT``:标志当前是被**抢占**运行的,他**会**再次被加入调度队列等待下次调度,通俗来说:它是被别的进程抢占了运行时间,有机会运行时他会继续执行。
|
/DragonOS/kernel/src/libs/ |
H A D | wait_queue.rs | 12 sched::{schedule, SchedMode}, 73 schedule(SchedMode::SM_NONE); in sleep() 92 schedule(SchedMode::SM_NONE); in sleep_with_func() 143 schedule(SchedMode::SM_NONE); in sleep_uninterruptible() 159 schedule(SchedMode::SM_NONE); in sleep_unlock_spinlock() 175 schedule(SchedMode::SM_NONE); in sleep_unlock_mutex() 191 schedule(SchedMode::SM_NONE); in sleep_uninterruptible_unlock_spinlock() 209 schedule(SchedMode::SM_NONE); in sleep_uninterruptible_unlock_mutex() 339 schedule(SchedMode::SM_NONE); in sleep() 363 schedule(SchedMode::SM_NONE); in sleep_unlock_spinlock()
|
H A D | mutex.rs | 14 sched::{schedule, SchedMode}, 110 schedule(SchedMode::SM_NONE); in __sleep()
|
/DragonOS/kernel/src/sched/ |
H A D | syscall.rs | 11 use super::{cpu_rq, schedule, SchedMode}; 33 schedule(SchedMode::SM_NONE); in do_sched_yield()
|
H A D | mod.rs | 752 pub struct SchedMode: u8 { 821 pub fn schedule(sched_mod: SchedMode) { in schedule() argument 830 pub fn __schedule(sched_mod: SchedMode) { in __schedule() argument 873 if !sched_mod.contains(SchedMode::SM_MASK_PREEMPT) in __schedule()
|
/DragonOS/kernel/src/arch/x86_64/interrupt/ |
H A D | handle.rs | 10 sched::{SchedMode, __schedule}, 48 __schedule(SchedMode::SM_PREEMPT); in x86_64_do_irq()
|
/DragonOS/kernel/src/exception/ |
H A D | ipi.rs | 10 sched::{SchedMode, __schedule}, 58 __schedule(SchedMode::SM_PREEMPT); in handle()
|
/DragonOS/kernel/src/driver/tty/ |
H A D | kthread.rs | 14 sched::{schedule, SchedMode}, 40 schedule(SchedMode::SM_NONE); in tty_refresh_thread()
|
/DragonOS/kernel/src/time/ |
H A D | sleep.rs | 10 sched::{schedule, SchedMode}, 56 schedule(SchedMode::SM_NONE); in nanosleep()
|
H A D | timer.rs | 24 sched::{schedule, SchedMode}, 308 schedule(SchedMode::SM_NONE); in schedule_timeout() 327 schedule(SchedMode::SM_NONE); in schedule_timeout()
|
H A D | clocksource.rs | 27 sched::{schedule, SchedMode}, 958 schedule(SchedMode::SM_NONE); in clocksource_watchdog_kthread()
|
/DragonOS/kernel/crates/wait_queue_macros/src/ |
H A D | lib.rs | 30 crate::sched::schedule(SchedMode::SM_NONE)
|
/DragonOS/kernel/src/driver/irqchip/ |
H A D | riscv_intc.rs | 18 sched::{SchedMode, __schedule}, 228 __schedule(SchedMode::SM_PREEMPT); in riscv_intc_irq()
|
/DragonOS/kernel/src/process/ |
H A D | exit.rs | 13 sched::{schedule, SchedMode}, 169 schedule(SchedMode::SM_NONE); in do_wait()
|
H A D | kthread.rs | 22 sched::{schedule, SchedMode}, 483 schedule(SchedMode::SM_NONE); in kthread_daemon() 508 schedule(SchedMode::SM_NONE); in kernel_thread_bootstrap_stage2()
|
H A D | mod.rs | 57 EnqueueFlag, OnRq, SchedMode, WakeupFlags, __schedule, 435 __schedule(SchedMode::SM_NONE); in exit()
|
/DragonOS/kernel/src/arch/x86_64/ipc/ |
H A D | signal.rs | 20 sched::{schedule, SchedMode}, 719 schedule(SchedMode::SM_NONE); in sig_stop()
|
/DragonOS/kernel/src/filesystem/ |
H A D | eventfd.rs | 8 use crate::sched::SchedMode;
|
/DragonOS/kernel/src/net/socket/ |
H A D | mod.rs | 30 sched::{schedule, SchedMode}, 426 schedule(SchedMode::SM_NONE); in sleep()
|
/DragonOS/kernel/src/net/event_poll/ |
H A D | mod.rs | 27 sched::{schedule, SchedMode}, 498 schedule(SchedMode::SM_NONE); in do_epoll_wait()
|
/DragonOS/kernel/src/libs/futex/ |
H A D | futex.rs | 22 sched::{schedule, SchedMode}, 297 schedule(SchedMode::SM_NONE); in futex_wait()
|
/DragonOS/kernel/src/syscall/ |
H A D | mod.rs | 18 sched::{schedule, SchedMode}, 407 schedule(SchedMode::SM_NONE); in handle() 1209 schedule(SchedMode::SM_PREEMPT); in handle()
|
/DragonOS/kernel/src/ipc/ |
H A D | pipe.rs | 12 sched::SchedMode,
|