parallel
if (eb->buffer_count < ce->parallel.number_children + 1) {
eb->num_batches = ce->parallel.number_children + 1;
eb->context->parallel.fence_context,
eb->context->parallel.seqno++,
INIT_LIST_HEAD(&ce->parallel.child_list);
parent->parallel.child_index = parent->parallel.number_children++;
list_add_tail(&child->parallel.child_link,
&parent->parallel.child_list);
child->parallel.parent = parent;
ce->parallel.child_index + 1);
return !!ce->parallel.parent;
return !!ce->parallel.number_children;
GEM_BUG_ON(!intel_context_is_pinned(ce->parallel.parent));
return ce->parallel.parent;
list_for_each_entry(ce, &(parent)->parallel.child_list,\
parallel.child_link)
list_for_each_entry_safe(ce, cn, &(parent)->parallel.child_list,\
parallel.child_link)
} parallel;
parent->parallel.fence_context = dma_fence_context_alloc(1);
ce->parallel.guc.parent_page = context_size / PAGE_SIZE;
if (unlikely(ce->parallel.last_rq)) {
i915_request_put(ce->parallel.last_rq);
ce->parallel.last_rq = NULL;
int i, number_children = ce->parallel.number_children;
ce = list_next_entry(ce, parallel.child_link);
order_base_2(ce->parallel.number_children
order_base_2(ce->parallel.number_children
GEM_BUG_ON(ce->parallel.number_children > MAX_ENGINE_INSTANCE);
action[len++] = ce->parallel.number_children + 1;
GEM_BUG_ON(ce->parallel.number_children > MAX_ENGINE_INSTANCE);
action[len++] = ce->parallel.number_children + 1;
for (i = 0; i < ce->parallel.number_children + 1; ++i)
ce->parallel.guc.wqi_tail = 0;
ce->parallel.guc.wqi_head = 0;
ce->parallel.guc.wq_head = &pdesc->head;
ce->parallel.guc.wq_tail = &pdesc->tail;
ce->parallel.guc.wq_status = &pdesc->wq_status;
ce->parallel.guc.wqi_tail = 0;
ce->parallel.guc.wqi_head = 0;
ce->parallel.guc.wq_head = &wq_desc->head;
ce->parallel.guc.wq_tail = &wq_desc->tail;
ce->parallel.guc.wq_status = &wq_desc->wq_status;
__intel_context_pin(ce->parallel.parent);
GEM_BUG_ON(!intel_context_is_pinned(ce->parallel.parent));
intel_context_unpin(ce->parallel.parent);
parent->parallel.fence_context = dma_fence_context_alloc(1);
12 + 4 * parent->parallel.number_children;
GEM_BUG_ON(!ce->parallel.guc.parent_page);
return ce->parallel.guc.parent_page * PAGE_SIZE;
CIRC_SPACE(ce->parallel.guc.wqi_tail, ce->parallel.guc.wqi_head, WQ_SIZE)
ce->parallel.guc.wqi_head = READ_ONCE(*ce->parallel.guc.wq_head);
return &__get_parent_scratch(ce)->wq[ce->parallel.guc.wqi_tail / sizeof(u32)];
ce->parallel.number_children);
if (ce->parallel.guc.wq_status) {
READ_ONCE(*ce->parallel.guc.wq_head));
READ_ONCE(*ce->parallel.guc.wq_tail));
READ_ONCE(*ce->parallel.guc.wq_status));
for (i = 0; i < ce->parallel.number_children; ++i)
cs = intel_ring_begin(rq, 10 + 4 * ce->parallel.number_children);
for (i = 0; i < ce->parallel.number_children; ++i) {
ce->parallel.child_index),
for (i = 0; i < ce->parallel.number_children; ++i) {
ce->parallel.child_index),
return (WQ_SIZE - ce->parallel.guc.wqi_tail);
ce->parallel.guc.wqi_tail = (ce->parallel.guc.wqi_tail + wqi_size) &
WRITE_ONCE(*ce->parallel.guc.wq_tail, ce->parallel.guc.wqi_tail);
ce->parallel.guc.wqi_tail = 0;
unsigned int wqi_size = (ce->parallel.number_children + 4) *
if (++i == ce->parallel.number_children)
prev = request_to_parent(rq)->parallel.last_rq;
request_to_parent(rq)->parallel.last_rq = i915_request_get(rq);
struct wg_ring *parallel = &sc->sc_decap_ring;
mtx_enter(¶llel->r_mtx);
if (parallel->r_tail - parallel->r_head < MAX_QUEUED_PKT) {
parallel->r_buf[parallel->r_tail & MAX_QUEUED_PKT_MASK] = m;
parallel->r_tail++;
mtx_leave(¶llel->r_mtx);
mtx_leave(¶llel->r_mtx);
struct wg_ring *parallel = &sc->sc_encap_ring;
mtx_enter(¶llel->r_mtx);
if (parallel->r_tail - parallel->r_head < MAX_QUEUED_PKT) {
parallel->r_buf[parallel->r_tail & MAX_QUEUED_PKT_MASK] = m;
parallel->r_tail++;
mtx_leave(¶llel->r_mtx);
mtx_leave(¶llel->r_mtx);
void parallel(char **);
parallel(argv);