Home
last modified time | relevance | path

Searched refs:need_resched (Results 1 – 25 of 116) sorted by relevance

12345

/linux-6.6.21/Documentation/translations/zh_CN/scheduler/
Dsched-arch.rst38 2. need_resched/TIF_NEED_RESCHED 只会被设置,并且在运行任务调用 schedule()
39 之前永远不会被清除。空闲线程只需要查询need_resched,并且永远不会设置或清除它。
41 3. 当cpu_idle发现(need_resched() == 'true'),它应该调用schedule()。否则
44 4. 在检查need_resched时,唯一需要禁用中断的情况是,我们要让处理器休眠到下一个中
45 断(这并不对need_resched提供任何保护,它可以防止丢失一个中断):
50 if (!need_resched()) {
56 5. 当need_resched变为高电平时,TIF_POLLING_NRFLAG可以由不需要中断来唤醒它们
57 的空闲程序设置。换句话说,它们必须定期轮询need_resched,尽管做一些后台工作或
61 么需要清除它,然后发出一个内存屏障(接着测试need_resched,禁用中断,如3中解释)。
/linux-6.6.21/Documentation/scheduler/
Dsched-arch.rst29 2. need_resched/TIF_NEED_RESCHED is only ever set, and will never
31 threads need only ever query need_resched, and may never set or
34 3. When cpu_idle finds (need_resched() == 'true'), it should call
38 need_resched is if we are about to sleep the processor until
40 need_resched, it prevents losing an interrupt):
45 if (!need_resched()) {
52 need an interrupt to wake them up when need_resched goes high.
53 In other words, they must be periodically polling need_resched,
59 barrier issued (followed by a test of need_resched with
/linux-6.6.21/arch/arm64/include/asm/
Dpreempt.h32 current_thread_info()->preempt.need_resched = 0; in set_preempt_need_resched()
37 current_thread_info()->preempt.need_resched = 1; in clear_preempt_need_resched()
42 return !current_thread_info()->preempt.need_resched; in test_preempt_need_resched()
Dthread_info.h33 u32 need_resched; member
37 u32 need_resched;
/linux-6.6.21/arch/mips/kernel/
Dentry.S48 # interrupt setting need_resched
84 local_irq_disable # make sure need_resched and
128 local_irq_disable # make sure need_resched and
150 local_irq_disable # make sure need_resched doesn't
Didle.c54 if (!need_resched()) in r4k_wait_irqoff()
68 if (!need_resched()) in rm7k_wait_irqoff()
/linux-6.6.21/arch/powerpc/lib/
Dvmx-helper.c48 if (IS_ENABLED(CONFIG_PREEMPT) && need_resched()) in exit_vmx_usercopy()
/linux-6.6.21/drivers/cpuidle/
Dcoupled.c482 if (need_resched()) { in cpuidle_enter_state_coupled()
524 if (need_resched()) { in cpuidle_enter_state_coupled()
540 if (need_resched()) { in cpuidle_enter_state_coupled()
Dpoll_state.c29 while (!need_resched()) { in poll_idle()
/linux-6.6.21/fs/jbd2/
Dcheckpoint.c271 need_resched() || spin_needbreak(&journal->j_list_lock) || in jbd2_log_do_checkpoint()
387 if (need_resched()) in journal_shrink_one_cp_list()
447 if (need_resched() || spin_needbreak(&journal->j_list_lock)) in jbd2_journal_shrink_checkpoint_list()
502 if (need_resched()) in __jbd2_journal_clean_checkpoint_list()
/linux-6.6.21/kernel/entry/
Dkvm.c27 } while (ti_work & XFER_TO_GUEST_MODE_WORK || need_resched()); in xfer_to_guest_mode_work()
/linux-6.6.21/kernel/sched/
Didle.c156 if (need_resched()) { in cpuidle_idle_call()
258 while (!need_resched()) { in do_idle()
/linux-6.6.21/fs/
Ddrop_caches.c32 (mapping_empty(inode->i_mapping) && !need_resched())) { in drop_pagecache_sb()
/linux-6.6.21/arch/x86/include/asm/
Dmwait.h119 if (!need_resched()) { in mwait_idle_with_hints()
/linux-6.6.21/drivers/net/ethernet/sfc/
Def100_rep.c399 bool need_resched; in efx_ef100_rep_poll() local
424 need_resched = efv->write_index != read_index; in efx_ef100_rep_poll()
426 if (need_resched) in efx_ef100_rep_poll()
/linux-6.6.21/Documentation/translations/zh_CN/locking/
Dmutex-design.rst53 任务(need_resched,需要重新调度)准备运行时,当前任务试图自旋来获得
/linux-6.6.21/kernel/locking/
Dosq_lock.c143 if (smp_cond_load_relaxed(&node->locked, VAL || need_resched() || in osq_lock()
Dmutex.c373 if (!owner_on_cpu(owner) || need_resched()) { in mutex_spin_on_owner()
399 if (need_resched()) in mutex_can_spin_on_owner()
504 if (need_resched()) { in mutex_optimistic_spin()
/linux-6.6.21/drivers/acpi/
Dacpi_pad.c162 while (!need_resched()) { in power_saving_thread()
207 if (unlikely(need_resched())) in power_saving_thread()
/linux-6.6.21/mm/
Ddmapool_test.c85 if (need_resched()) in dmapool_test_block()
/linux-6.6.21/drivers/net/wireguard/
Dsend.c282 if (need_resched()) in wg_packet_tx_worker()
306 if (need_resched()) in wg_packet_encrypt_worker()
/linux-6.6.21/kernel/trace/
Dtrace_output.c447 char need_resched; in trace_print_lat_fmt() local
469 need_resched = 'N'; in trace_print_lat_fmt()
472 need_resched = 'n'; in trace_print_lat_fmt()
475 need_resched = 'p'; in trace_print_lat_fmt()
478 need_resched = '.'; in trace_print_lat_fmt()
491 irqs_off, need_resched, hardsoft_irq); in trace_print_lat_fmt()
/linux-6.6.21/drivers/char/hw_random/
Ds390-trng.c77 if (need_resched()) { in trng_read()
/linux-6.6.21/fs/btrfs/
Dextent-io-tree.c691 if (start <= end && state && !need_resched()) in __clear_extent_bit()
1065 !need_resched()) in __set_extent_bit()
1122 !need_resched()) in __set_extent_bit()
1305 !need_resched()) in convert_extent_bit()
1345 !need_resched()) in convert_extent_bit()
/linux-6.6.21/crypto/
Djitterentropy-testing.c206 if (large_request && need_resched()) { in jent_testing_extract_user()

12345