video: tegra: host: nvdla: add task timeout support

- pass task timeout parameter from user to engine for book keeping
  of task runtime
- as stack framesize crossing limit of 2048 bytes, reduce number of
  maximum task can be submitted in one go.

Jira DLA-374
Bug 200302518

Change-Id: I99d3706d9d80ac0201529d68c0a959cdd22a1488
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/1468355
Reviewed-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
Reviewed-by: Inamdar Sharif <isharif@nvidia.com>
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
This commit is contained in:
Shridhar Rasal
2017-04-24 13:56:20 +05:30
committed by Laxman Dewangan
parent 24850d2fef
commit cd14b7e09f
3 changed files with 3 additions and 0 deletions

View File

@@ -174,6 +174,7 @@ struct dla_task_descriptor {
uint64_t address_list;
uint16_t num_addresses;
uint16_t status;
uint64_t timeout;
} __attribute__ ((packed, aligned(4)));
struct dla_action_list {

View File

@@ -518,6 +518,7 @@ static int nvdla_fill_task(struct nvhost_queue *queue,
task->num_in_task_status = local_task->num_input_task_status;
task->num_out_task_status = local_task->num_output_task_status;
task->num_addresses = local_task->num_addresses;
task->timeout = local_task->timeout;
/* assign memory for local task action lists and buf handles */
mem = task;

View File

@@ -806,6 +806,7 @@ int nvdla_fill_task_desc(struct nvdla_task *task)
task_desc->version = DLA_DESCRIPTOR_VERSION;
task_desc->engine_id = DLA_ENGINE_ID;
task_desc->size = nvdla_get_task_desc_size();
task_desc->timeout = task->timeout;
/* update current task sequeue, make sure wrap around condition */
queue->sequence = queue->sequence + 1;