Lines Matching refs:batch

77     MppDevBatTask       *batch;  member
167 static void batch_reset(MppDevBatTask *batch) in batch_reset() argument
169 mpp_assert(list_empty(&batch->link_tasks)); in batch_reset()
171 batch->fill_cnt = 0; in batch_reset()
172 batch->fill_full = 0; in batch_reset()
173 batch->fill_timeout = 0; in batch_reset()
174 batch->poll_cnt = 0; in batch_reset()
175 batch->send_req_cnt = 0; in batch_reset()
176 batch->wait_req_cnt = 0; in batch_reset()
181 MppDevBatTask *batch = (MppDevBatTask *)mpp_mem_pool_get(server->batch_pool); in batch_add() local
183 mpp_assert(batch); in batch_add()
184 if (NULL == batch) in batch_add()
185 return batch; in batch_add()
187 INIT_LIST_HEAD(&batch->link_server); in batch_add()
188 INIT_LIST_HEAD(&batch->link_tasks); in batch_add()
190 batch->send_reqs = (MppReqV1 *)(batch + 1); in batch_add()
191 batch->wait_reqs = batch->send_reqs + in batch_add()
193 batch->bat_cmd = (MppDevBatCmd *)(batch->wait_reqs + in batch_add()
196 batch_reset(batch); in batch_add()
197 list_add_tail(&batch->link_server, &server->list_batch_free); in batch_add()
201 return batch; in batch_add()
204 void batch_del(MppDevBatServ *server, MppDevBatTask *batch) in batch_del() argument
206 mpp_assert(batch); in batch_del()
207 mpp_assert(batch->fill_cnt == 0); in batch_del()
208 mpp_assert(list_empty(&batch->link_tasks)); in batch_del()
210 list_del_init(&batch->link_server); in batch_del()
212 mpp_mem_pool_put(server->batch_pool, batch); in batch_del()
217 void batch_send(MppDevBatServ *server, MppDevBatTask *batch) in batch_send() argument
221 mpp_assert(batch->send_req_cnt); in batch_send()
223 ret = mpp_service_ioctl_request(server->server_fd, batch->send_reqs); in batch_send()
228 mpp_serv_dbg_flow("batch %d -> send failed\n", batch->batch_id); in batch_send()
231 list_del_init(&batch->link_server); in batch_send()
232 list_add_tail(&batch->link_server, &server->list_batch); in batch_send()
235 mpp_serv_dbg_flow("batch %d -> send %d for %s\n", batch->batch_id, in batch_send()
236 batch->fill_cnt, batch->fill_timeout ? "timeout" : "ready"); in batch_send()
245 MppDevBatTask *batch; in process_task() local
255 batch = list_first_entry_or_null(&server->list_batch, MppDevBatTask, link_server); in process_task()
256 if (NULL == batch) in process_task()
259 mpp_assert(batch->wait_req_cnt); in process_task()
260 ret = mpp_service_ioctl_request(server->server_fd, batch->wait_reqs); in process_task()
264 list_for_each_entry_safe(task, n, &batch->link_tasks, MppDevTask, link_batch) { in process_task()
266 MppDevBatCmd *cmd = batch->bat_cmd + batch_slot_id; in process_task()
277 batch->batch_id, task->batch_slot_id, task->task_id); in process_task()
283 task->batch = NULL; in process_task()
286 batch->batch_id, task->batch_slot_id, session->client); in process_task()
294 batch->poll_cnt++; in process_task()
299 mpp_serv_dbg_flow("batch %d fill %d poll %d\n", batch->batch_id, in process_task()
300 batch->fill_cnt, batch->poll_cnt); in process_task()
302 if (batch->poll_cnt == batch->fill_cnt) { in process_task()
303 mpp_serv_dbg_flow("batch %d poll done\n", batch->batch_id); in process_task()
304 list_del_init(&batch->link_server); in process_task()
305 list_add_tail(&batch->link_server, &server->list_batch_free); in process_task()
309 batch_reset(batch); in process_task()
310 batch = NULL; in process_task()
314 mpp_log_f("batch %d poll ret %d errno %d %s", batch->batch_id, in process_task()
354 batch = list_first_entry_or_null(&server->list_batch_free, MppDevBatTask, link_server); in process_task()
355 mpp_assert(batch); in process_task()
356 if (NULL == batch) { in process_task()
362 if (batch->fill_cnt) in process_task()
363 batch_send(server, batch); in process_task()
377 batch = list_first_entry_or_null(&server->list_batch_free, MppDevBatTask, link_server); in process_task()
378 mpp_assert(batch); in process_task()
390 if (!batch->fill_cnt) in process_task()
391 batch->batch_id = server->batch_id++; in process_task()
393 task->batch = batch; in process_task()
394 task->batch_slot_id = batch->fill_cnt++; in process_task()
396 list_add_tail(&task->link_batch, &batch->link_tasks); in process_task()
397 if (batch->fill_cnt >= server->max_task_in_batch) in process_task()
398 batch->fill_full = 1; in process_task()
404 bat_cmd = batch->bat_cmd + task->batch_slot_id; in process_task()
411 req = &batch->send_reqs[batch->send_req_cnt++]; in process_task()
422 batch->send_reqs[batch->send_req_cnt++] = task->req[i]; in process_task()
425 mpp_assert(batch->send_req_cnt <= server->max_task_in_batch * MAX_REQ_NUM); in process_task()
428 req = &batch->wait_reqs[batch->wait_req_cnt++]; in process_task()
435 req = &batch->wait_reqs[batch->wait_req_cnt++]; in process_task()
443 batch->batch_id, task->batch_slot_id, session->client, in process_task()
446 if (batch->fill_full) { in process_task()
447 list_del_init(&batch->link_server); in process_task()
448 list_add_tail(&batch->link_server, &server->list_batch); in process_task()
450 batch->batch_id, batch->fill_cnt); in process_task()
451 batch_send(server, batch); in process_task()
452 batch = NULL; in process_task()
736 MppDevBatTask *batch, *n; in bat_server_put() local
757 list_for_each_entry_safe(batch, n, &server->list_batch_free, MppDevBatTask, link_server) { in bat_server_put()
758 batch_del(server, batch); in bat_server_put()
822 task->batch = NULL; in attach()