| /linux/include/trace/events/ |
| H A D | rcu.h | 514 TP_PROTO(const char *rcuname, struct rcu_head *rhp, long qlen), 516 TP_ARGS(rcuname, rhp, qlen), 520 __field(void *, rhp) 527 __entry->rhp = rhp; 528 __entry->func = rhp->func; 533 __entry->rcuname, __entry->rhp, __entry->func, 600 TP_PROTO(const char *rcuname, struct rcu_head *rhp), 602 TP_ARGS(rcuname, rhp), 606 __field(void *, rhp) 612 __entry->rhp = rhp; [all …]
|
| /linux/kernel/rcu/ |
| H A D | rcu_segcblist.c | 29 void rcu_cblist_enqueue(struct rcu_cblist *rclp, struct rcu_head *rhp) in rcu_cblist_enqueue() argument 31 *rclp->tail = rhp; in rcu_cblist_enqueue() 32 rclp->tail = &rhp->next; in rcu_cblist_enqueue() 46 struct rcu_head *rhp) in rcu_cblist_flush_enqueue() argument 54 if (!rhp) { in rcu_cblist_flush_enqueue() 57 rhp->next = NULL; in rcu_cblist_flush_enqueue() 58 srclp->head = rhp; in rcu_cblist_flush_enqueue() 59 srclp->tail = &rhp->next; in rcu_cblist_flush_enqueue() 70 struct rcu_head *rhp; in rcu_cblist_dequeue() local 72 rhp = rclp->head; in rcu_cblist_dequeue() [all …]
|
| H A D | srcutiny.c | 126 struct rcu_head *rhp; in srcu_drive_gp() local 160 rhp = lh; in srcu_drive_gp() 162 debug_rcu_head_callback(rhp); in srcu_drive_gp() 164 rhp->func(rhp); in srcu_drive_gp() 219 void call_srcu(struct srcu_struct *ssp, struct rcu_head *rhp, in call_srcu() argument 224 rhp->func = func; in call_srcu() 225 rhp->next = NULL; in call_srcu() 228 *ssp->srcu_cb_tail = rhp; in call_srcu() 229 ssp->srcu_cb_tail = &rhp->next; in call_srcu()
|
| H A D | rcu.h | 270 static inline void debug_rcu_head_callback(struct rcu_head *rhp) in debug_rcu_head_callback() argument 272 if (unlikely(!rhp->func)) in debug_rcu_head_callback() 273 kmem_dump_obj(rhp); in debug_rcu_head_callback() 276 static inline bool rcu_barrier_cb_is_done(struct rcu_head *rhp) in rcu_barrier_cb_is_done() argument 278 return rhp->next == rhp; in rcu_barrier_cb_is_done() 596 struct rcu_head *rhp, 611 struct rcu_head *rhp, 616 #define do_trace_rcu_torture_read(rcutorturename, rhp, secs, c_old, c) \ argument
|
| H A D | tasks.h | 340 static void call_rcu_tasks_generic(struct rcu_head *rhp, rcu_callback_t func, in call_rcu_tasks_generic() argument 352 rhp->next = NULL; in call_rcu_tasks_generic() 353 rhp->func = func; in call_rcu_tasks_generic() 385 rcu_segcblist_enqueue(&rtpcp->cblist, rhp); in call_rcu_tasks_generic() 408 static void rcu_barrier_tasks_generic_cb(struct rcu_head *rhp) in rcu_barrier_tasks_generic_cb() argument 413 rhp->next = rhp; // Mark the callback as having been invoked. in rcu_barrier_tasks_generic_cb() 414 rtpcp = container_of(rhp, struct rcu_tasks_percpu, barrier_q_head); in rcu_barrier_tasks_generic_cb() 546 struct rcu_head *rhp; in rcu_tasks_invoke_cbs() local 574 for (rhp = rcu_cblist_dequeue(&rcl); rhp; rhp = rcu_cblist_dequeue(&rcl)) { in rcu_tasks_invoke_cbs() 575 debug_rcu_head_callback(rhp); in rcu_tasks_invoke_cbs() [all …]
|
| H A D | rcu_segcblist.h | 24 void rcu_cblist_enqueue(struct rcu_cblist *rclp, struct rcu_head *rhp); 27 struct rcu_head *rhp); 129 struct rcu_head *rhp); 131 struct rcu_head *rhp);
|
| H A D | srcutree.c | 1277 static void srcu_leak_callback(struct rcu_head *rhp) in srcu_leak_callback() argument 1285 struct rcu_head *rhp, bool do_norm) in srcu_gp_start_if_needed() argument 1311 if (rhp) in srcu_gp_start_if_needed() 1312 rcu_segcblist_enqueue(&sdp->srcu_cblist, rhp); in srcu_gp_start_if_needed() 1350 if (rhp) { in srcu_gp_start_if_needed() 1414 static void __call_srcu(struct srcu_struct *ssp, struct rcu_head *rhp, in __call_srcu() argument 1417 if (debug_rcu_head_queue(rhp)) { in __call_srcu() 1419 WRITE_ONCE(rhp->func, srcu_leak_callback); in __call_srcu() 1423 rhp->func = func; in __call_srcu() 1424 (void)srcu_gp_start_if_needed(ssp, rhp, do_norm); in __call_srcu() [all …]
|
| H A D | rcutorture.c | 2089 static void rcu_torture_timer_cb(struct rcu_head *rhp) in rcu_torture_timer_cb() argument 2091 kfree(rhp); in rcu_torture_timer_cb() 2678 struct rcu_head *rhp = kmalloc_obj(*rhp, GFP_NOWAIT); in rcu_torture_timer() local 2680 if (rhp) in rcu_torture_timer() 2681 cur_ops->call(rhp, rcu_torture_timer_cb); in rcu_torture_timer() 2713 struct rcu_head *rhp = kmalloc_obj(*rhp, GFP_NOWAIT); in rcu_torture_irq() local 2715 if (rhp) in rcu_torture_irq() 2716 cur_ops->call(rhp, rcu_torture_timer_cb); in rcu_torture_irq() 3134 struct rcu_head *rhp; in rcu_torture_mem_dump_obj() local 3141 rhp = kmem_cache_alloc(kcp, GFP_KERNEL); in rcu_torture_mem_dump_obj() [all …]
|
| H A D | sync.c | 27 static void rcu_sync_func(struct rcu_head *rhp); 57 static void rcu_sync_func(struct rcu_head *rhp) in rcu_sync_func() argument 59 struct rcu_sync *rsp = container_of(rhp, struct rcu_sync, cb_head); in rcu_sync_func()
|
| H A D | tree_nocb.h | 372 struct rcu_head *rhp = rhp_in; in rcu_nocb_do_flush_bypass() local 377 if (rhp && !rcu_cblist_n_cbs(&rdp->nocb_bypass)) { in rcu_nocb_do_flush_bypass() 382 if (rhp) in rcu_nocb_do_flush_bypass() 391 if (lazy && rhp) { in rcu_nocb_do_flush_bypass() 392 rcu_cblist_enqueue(&rdp->nocb_bypass, rhp); in rcu_nocb_do_flush_bypass() 393 rhp = NULL; in rcu_nocb_do_flush_bypass() 395 rcu_cblist_flush_enqueue(&rcl, &rdp->nocb_bypass, rhp); in rcu_nocb_do_flush_bypass() 412 static bool rcu_nocb_flush_bypass(struct rcu_data *rdp, struct rcu_head *rhp, in rcu_nocb_flush_bypass() argument 419 return rcu_nocb_do_flush_bypass(rdp, rhp, j, lazy); in rcu_nocb_flush_bypass() 485 static bool rcu_nocb_try_bypass(struct rcu_data *rdp, struct rcu_head *rhp, in rcu_nocb_try_bypass() argument [all …]
|
| H A D | tree.c | 2584 struct rcu_head *rhp; in rcu_do_batch() local 2636 rhp = rcu_cblist_dequeue(&rcl); in rcu_do_batch() 2638 for (; rhp; rhp = rcu_cblist_dequeue(&rcl)) { in rcu_do_batch() 2642 debug_rcu_head_unqueue(rhp); in rcu_do_batch() 2645 trace_rcu_invoke_callback(rcu_state.name, rhp); in rcu_do_batch() 2647 f = rhp->func; in rcu_do_batch() 2648 debug_rcu_head_callback(rhp); in rcu_do_batch() 2649 WRITE_ONCE(rhp->func, (rcu_callback_t)0L); in rcu_do_batch() 2650 f(rhp); in rcu_do_batch() 3105 static void rcu_leak_callback(struct rcu_head *rhp) in rcu_leak_callback() argument [all …]
|
| H A D | tree.h | 508 static bool rcu_nocb_flush_bypass(struct rcu_data *rdp, struct rcu_head *rhp,
|
| H A D | rcuscale.c | 537 static void rcu_scale_async_cb(struct rcu_head *rhp) in rcu_scale_async_cb() argument 539 struct writer_mblock *wmbp = container_of(rhp, struct writer_mblock, wmb_rh); in rcu_scale_async_cb()
|
| /linux/include/linux/ |
| H A D | rcupdate_trace.h | 157 static inline void call_rcu_tasks_trace(struct rcu_head *rhp, rcu_callback_t func) in call_rcu_tasks_trace() argument 159 call_srcu(&rcu_tasks_trace_srcu_struct, rhp, func); in call_rcu_tasks_trace() 220 static inline void call_rcu_tasks_trace(struct rcu_head *rhp, rcu_callback_t func) { BUG(); } in call_rcu_tasks_trace() argument
|
| H A D | rcupdate.h | 1183 static inline void rcu_head_init(struct rcu_head *rhp) in rcu_head_init() argument 1185 rhp->func = (rcu_callback_t)~0L; in rcu_head_init() 1202 rcu_head_after_call_rcu(struct rcu_head *rhp, rcu_callback_t f) in rcu_head_after_call_rcu() argument 1204 rcu_callback_t func = READ_ONCE(rhp->func); in rcu_head_after_call_rcu()
|
| /linux/drivers/media/usb/pvrusb2/ |
| H A D | pvrusb2-v4l2.c | 40 struct pvr2_ioread *rhp; member 894 if (fhp->rhp) { in pvr2_v4l2_release() 897 sp = pvr2_ioread_get_stream(fhp->rhp); in pvr2_v4l2_release() 899 pvr2_ioread_destroy(fhp->rhp); in pvr2_v4l2_release() 900 fhp->rhp = NULL; in pvr2_v4l2_release() 1025 if (fh->rhp) return 0; in pvr2_v4l2_iosetup() 1041 fh->rhp = pvr2_channel_create_mpeg_stream(fh->pdi->stream); in pvr2_v4l2_iosetup() 1042 if (!fh->rhp) { in pvr2_v4l2_iosetup() 1052 return pvr2_ioread_set_enabled(fh->rhp,!0); in pvr2_v4l2_iosetup() 1095 if (!fh->rhp) { in pvr2_v4l2_read() [all …]
|
| /linux/include/linux/sched/ |
| H A D | mm.h | 63 static inline void __mmdrop_delayed(struct rcu_head *rhp) in __mmdrop_delayed() argument 65 struct mm_struct *mm = container_of(rhp, struct mm_struct, delayed_drop); in __mmdrop_delayed()
|
| /linux/drivers/infiniband/hw/cxgb4/ |
| H A D | ev.c | 100 c4iw_modify_qp(qhp->rhp, qhp, C4IW_QP_ATTR_NEXT_STATE, in post_qp_event()
|
| H A D | cm.c | 1645 err = c4iw_modify_qp(ep->com.qp->rhp, in process_mpa_reply() 1660 err = c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, in process_mpa_reply() 1679 err = c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, in process_mpa_reply() 1884 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, in rx_data() 2760 ret = c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, in peer_close() 2778 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, in peer_close() 2808 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, in finish_peer_abort() 2912 ret = c4iw_modify_qp(ep->com.qp->rhp, in peer_abort() 3001 c4iw_modify_qp(ep->com.qp->rhp, in close_con_rpl() 3038 c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, in terminate() [all …]
|
| H A D | restrack.c | 434 struct c4iw_dev *dev = mhp->rhp; in c4iw_fill_res_mr_entry()
|
| /linux/kernel/ |
| H A D | pid.c | 104 static void delayed_put_pid(struct rcu_head *rhp) in delayed_put_pid() argument 106 struct pid *pid = container_of(rhp, struct pid, rcu); in delayed_put_pid()
|
| /linux/Documentation/RCU/ |
| H A D | rcuref.rst | 114 void el_free(struct rcu_head *rhp)
|
| /linux/kernel/locking/ |
| H A D | locktorture.c | 1114 static void call_rcu_chain_cb(struct rcu_head *rhp) in call_rcu_chain_cb() argument 1116 struct call_rcu_chain *crcp = container_of(rhp, struct call_rcu_chain, crc_rh); in call_rcu_chain_cb()
|
| /linux/fs/xfs/ |
| H A D | xfs_log_recover.c | 2358 struct hlist_head *rhp; in xlog_recover_ophdr_to_trans() local 2361 rhp = &rhash[XLOG_RHASH(tid)]; in xlog_recover_ophdr_to_trans() 2362 hlist_for_each_entry(trans, rhp, r_list) { in xlog_recover_ophdr_to_trans() 2385 hlist_add_head(&trans->r_list, rhp); in xlog_recover_ophdr_to_trans()
|
| /linux/tools/testing/selftests/bpf/test_kmods/ |
| H A D | bpf_testmod.c | 1152 static void bpf_kfunc_rcu_tasks_trace_cb(struct rcu_head *rhp) in bpf_kfunc_rcu_tasks_trace_cb() argument 1156 data = container_of(rhp, struct bpf_kfunc_rcu_tasks_trace_data, rcu); in bpf_kfunc_rcu_tasks_trace_cb()
|