예제 #1
0
static
void deferred_latency_tracker_put_event(struct rcu_head *head)
{
    struct latency_tracker *tracker;
    struct latency_tracker_event *s =
        container_of(head, struct latency_tracker_event, urcuhead);
    tracker = s->tracker;
    wrapper_freelist_put_event(tracker, s);
}
예제 #2
0
static
void tracker_call_rcu_workqueue(struct work_struct *work)
{
       struct latency_tracker *tracker;
       struct llist_node *list;
       struct latency_tracker_event *e, *n;

       tracker = container_of(work, struct latency_tracker,
		       tracker_call_rcu_w.work);
       list = llist_del_all(&tracker->to_release);
       synchronize_sched();
       llist_for_each_entry_safe(e, n, list, llist)
	       wrapper_freelist_put_event(tracker, e);
}