| /linux/arch/arm64/include/asm/ |
| H A D | preempt.h | 12 return READ_ONCE(current_thread_info()->preempt.count); in preempt_count() 18 WRITE_ONCE(current_thread_info()->preempt.count, pc); in preempt_count_set() 31 current_thread_info()->preempt.need_resched = 0; in set_preempt_need_resched() 36 current_thread_info()->preempt.need_resched = 1; in clear_preempt_need_resched() 41 return !current_thread_info()->preempt.need_resched; in test_preempt_need_resched() 46 u32 pc = READ_ONCE(current_thread_info()->preempt.count); in __preempt_count_add() 48 WRITE_ONCE(current_thread_info()->preempt.count, pc); in __preempt_count_add() 53 u32 pc = READ_ONCE(current_thread_info()->preempt.count); in __preempt_count_sub() 55 WRITE_ONCE(current_thread_info()->preempt.count, pc); in __preempt_count_sub() 64 WRITE_ONCE(ti->preempt.count, --pc); in __preempt_count_dec_and_test()
|
| /linux/drivers/gpu/drm/msm/adreno/ |
| H A D | a5xx_preempt.c | 149 a5xx_gpu->preempt[ring->id]->wptr = get_wptr(ring); in a5xx_preempt_trigger() 231 a5xx_gpu->preempt[i]->data = 0; in a5xx_preempt_hw_init() 232 a5xx_gpu->preempt[i]->info = 0; in a5xx_preempt_hw_init() 233 a5xx_gpu->preempt[i]->wptr = 0; in a5xx_preempt_hw_init() 234 a5xx_gpu->preempt[i]->rptr = 0; in a5xx_preempt_hw_init() 235 a5xx_gpu->preempt[i]->rbase = gpu->rb[i]->iova; in a5xx_preempt_hw_init() 236 a5xx_gpu->preempt[i]->rptr_addr = shadowptr(a5xx_gpu, gpu->rb[i]); in a5xx_preempt_hw_init() 278 a5xx_gpu->preempt[ring->id] = ptr; in preempt_init_ring()
|
| H A D | a6xx_preempt.c | 216 struct a6xx_preempt_record *record_ptr = a6xx_gpu->preempt[i]; in a6xx_preempt_hw_init() 300 struct a6xx_preempt_record *record_ptr = a6xx_gpu->preempt[ring->id]; in a6xx_preempt_trigger() 378 a6xx_gpu->preempt[ring->id] = ptr; in preempt_init_ring()
|
| /linux/tools/testing/selftests/ftrace/test.d/preemptirq/ |
| H A D | irqsoff_tracer.tc | 36 modprobe $MOD test_mode=preempt delay=500000 || fail 38 modprobe $MOD test_mode=preempt delay=500000 || fail 40 modprobe $MOD test_mode=preempt delay=500000 || fail
|
| /linux/Documentation/locking/ |
| H A D | preempt-locking.rst | 53 Note, some FPU functions are already explicitly preempt safe. For example, 77 preempt_enable() decrement the preempt counter 78 preempt_disable() increment the preempt counter 79 preempt_enable_no_resched() decrement, but do not immediately preempt 81 preempt_count() return the preempt counter 85 call to preempt_enable. The preempt statements define to nothing if 94 a reschedule if the preempt count is 0. A simple printk() might trigger a 121 This code is not preempt-safe, but see how easily we can fix it by simply
|
| /linux/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ |
| H A D | gk110.c | 41 cgrp->func->preempt(cgrp); in gk110_chan_preempt() 57 .preempt = gk110_chan_preempt, 68 .preempt = gk110_cgrp_preempt,
|
| H A D | chan.c | 141 chan->func->preempt(chan); in nvkm_chan_preempt_locked() 153 if (!chan->func->preempt) in nvkm_chan_preempt() 182 nvkm_chan_remove(struct nvkm_chan *chan, bool preempt) in nvkm_chan_remove() argument 187 if (preempt && chan->func->preempt) in nvkm_chan_remove() 227 nvkm_chan_error(struct nvkm_chan *chan, bool preempt) in nvkm_chan_error() argument 235 if (preempt) in nvkm_chan_error() 236 chan->func->preempt(chan); in nvkm_chan_error()
|
| H A D | ga100.c | 105 .preempt = gk110_chan_preempt, 119 .preempt = ga100_cgrp_preempt, 402 runl->func->preempt(runl); in ga100_runl_init() 435 .preempt = ga100_runl_preempt,
|
| H A D | runl.c | 87 if (runl->func->preempt) { in nvkm_runl_rc() 137 if (runl->func->preempt) in nvkm_runl_rc_runl() 138 runl->func->preempt(runl); in nvkm_runl_rc_runl()
|
| /linux/samples/trace_events/ |
| H A D | trace_custom_sched.h | 27 TP_PROTO(bool preempt, 32 TP_ARGS(preempt, prev, next, prev_state),
|
| /linux/kernel/trace/rv/monitors/sssw/ |
| H A D | sssw.c | 29 static void handle_sched_switch(void *data, bool preempt, in handle_sched_set_state() 34 if (preempt) in handle_sched_switch() 31 handle_sched_switch(void * data,bool preempt,struct task_struct * prev,struct task_struct * next,unsigned int prev_state) handle_sched_switch() argument
|
| /linux/Documentation/trace/rv/ |
| H A D | monitor_wip.rst | 39 do not trace (preempt count >= 1) 44 do not trace (preempt count >= 1)
|
| /linux/kernel/trace/rv/monitors/nrp/ |
| H A D | nrp.c | 76 static void handle_schedule_entry(void *data, bool preempt) in handle_sched_need_resched() 78 if (preempt) in handle_schedule_entry() argument
|
| /linux/kernel/trace/rv/monitors/sts/ |
| H A D | sts.c | 75 static void handle_sched_switch(void *data, bool preempt, in handle_irq_entry() 83 static void handle_schedule_entry(void *data, bool preempt) in handle_sched_switch() 77 handle_sched_switch(void * data,bool preempt,struct task_struct * prev,struct task_struct * next,unsigned int prev_state) handle_sched_switch() argument 85 handle_schedule_entry(void * data,bool preempt) handle_schedule_entry() argument
|
| /linux/include/trace/events/ |
| H A D | sched.h | 190 static inline long __trace_sched_switch_state(bool preempt, in __trace_sched_switch_state() argument 202 if (preempt) in __trace_sched_switch_state() 222 TP_PROTO(bool preempt, 227 TP_ARGS(preempt, prev, next, prev_state), 243 __entry->prev_state = __trace_sched_switch_state(preempt, prev_state, prev); 883 TP_PROTO(bool preempt), 884 TP_ARGS(preempt));
|
| /linux/Documentation/arch/powerpc/ |
| H A D | vpa-dtl.rst | 18 retrieve a log of dispatch and preempt events from the hypervisor 20 user can retrieve when and why each dispatch & preempt has occurred. 31 Trace Log) contains information about dispatch/preempt, enqueue time etc. 121 First two fields represent the dispatch reason and preempt reason. The post
|
| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_vm.c | 70 list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) { in preempt_fences_waiting() 95 if (*count >= vm->preempt.num_exec_queues) in alloc_preempt_fences() 98 for (; *count < vm->preempt.num_exec_queues; ++(*count)) { in alloc_preempt_fences() 119 list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) { in wait_for_existing_preempt_fences() 147 list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) { in xe_vm_is_idle() 160 list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) { in arm_preempt_fences() 181 if (!vm->preempt.num_exec_queues) in add_preempt_fences() 184 err = dma_resv_reserve_fences(bo->ttm.base.resv, vm->preempt.num_exec_queues); in add_preempt_fences() 188 list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) in add_preempt_fences() 206 list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) { in resume_and_reinstall_preempt_fences() [all …]
|
| H A D | xe_vm.h | 246 queue_work(vm->xe->ordered_wq, &vm->preempt.rebind_work); in xe_vm_queue_rebind_worker() 260 if (xe_vm_in_preempt_fence_mode(vm) && vm->preempt.rebind_deactivated) { in xe_vm_reactivate_rebind() 261 vm->preempt.rebind_deactivated = false; in xe_vm_reactivate_rebind()
|
| /linux/drivers/parport/ |
| H A D | share.c | 686 if (!par_dev_cb->preempt || !par_dev_cb->wakeup) { in parport_register_dev_model() 727 par_dev->preempt = par_dev_cb->preempt; in parport_register_dev_model() 971 if (oldcad->preempt) { in parport_claim() 972 if (oldcad->preempt(oldcad->private)) in parport_claim()
|
| /linux/kernel/trace/rv/monitors/snep/ |
| H A D | Kconfig | 11 Monitor to ensure schedule does not enable preempt.
|
| /linux/Documentation/translations/zh_CN/locking/ |
| H A D | index.rst | 30 * preempt-locking
|
| /linux/kernel/trace/rv/monitors/sco/ |
| H A D | sco.c | 25 static void handle_schedule_entry(void *data, bool preempt) in handle_sched_set_state() 27 handle_schedule_entry(void * data,bool preempt) handle_schedule_entry() argument
|
| /linux/kernel/trace/rv/monitors/snroc/ |
| H A D | snroc.c | 25 static void handle_sched_switch(void *data, bool preempt, in handle_sched_set_state() 27 handle_sched_switch(void * data,bool preempt,struct task_struct * prev,struct task_struct * next,unsigned int prev_state) handle_sched_switch() argument
|
| /linux/kernel/trace/rv/monitors/wwnr/ |
| H A D | wwnr.c | 19 static void handle_switch(void *data, bool preempt, struct task_struct *p, 21 handle_switch(void * data,bool preempt,struct task_struct * p,struct task_struct * n,unsigned int prev_state) handle_switch() argument
|
| /linux/kernel/trace/rv/monitors/scpd/ |
| H A D | scpd.c | 31 static void handle_schedule_entry(void *data, bool preempt) in handle_preempt_enable() 33 handle_schedule_entry(void * data,bool preempt) handle_schedule_entry() argument
|