[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ca31e291b14a8c3494d0c49a097452ae@codeaurora.org>
Date: Tue, 16 Jul 2019 10:18:21 +0530
From: amasule@...eaurora.org
To: Stanimir Varbanov <stanimir.varbanov@...aro.org>
Cc: linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-msm@...r.kernel.org, vgarodia@...eaurora.org
Subject: Re: [PATCH v4 4/4] media: venus: Update core selection
On 2019-07-15 21:30, Stanimir Varbanov wrote:
> Hi,
>
> On 7/2/19 5:46 PM, Aniket Masule wrote:
>> Present core assignment is static. Introduced load balancing
>> across the cores. Load on earch core is calculated and core
>> with minimum load is assigned to given instance.
>>
>> Signed-off-by: Aniket Masule <amasule@...eaurora.org>
>> ---
>> drivers/media/platform/qcom/venus/helpers.c | 69
>> +++++++++++++++++++++++---
>> drivers/media/platform/qcom/venus/helpers.h | 2 +-
>> drivers/media/platform/qcom/venus/hfi_helper.h | 1 +
>> drivers/media/platform/qcom/venus/hfi_parser.h | 5 ++
>> drivers/media/platform/qcom/venus/vdec.c | 2 +-
>> drivers/media/platform/qcom/venus/venc.c | 2 +-
>> 6 files changed, 72 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/media/platform/qcom/venus/helpers.c
>> b/drivers/media/platform/qcom/venus/helpers.c
>> index 5726d86..321e9f7 100644
>> --- a/drivers/media/platform/qcom/venus/helpers.c
>> +++ b/drivers/media/platform/qcom/venus/helpers.c
>> @@ -26,6 +26,7 @@
>> #include "helpers.h"
>> #include "hfi_helper.h"
>> #include "hfi_venus_io.h"
>> +#include "hfi_parser.h"
>>
>> struct intbuf {
>> struct list_head list;
>> @@ -331,6 +332,24 @@ static u32 load_per_instance(struct venus_inst
>> *inst)
>> return mbs * inst->fps;
>> }
>>
>> +static u32 load_per_core(struct venus_core *core, u32 core_id)
>> +{
>> + struct venus_inst *inst = NULL;
>> + u32 mbs_per_sec = 0, load = 0;
>> +
>> + mutex_lock(&core->lock);
>> + list_for_each_entry(inst, &core->instances, list) {
>> + if (!(inst->clk_data.core_id == core_id))
>
> if (inst->clk_data.core_id != core_id)
>
> I guess will be more readable?
>
Yes, I will modify the check.
>> + continue;
>> +
>> + mbs_per_sec = load_per_instance(inst);
>> + load = mbs_per_sec * inst->clk_data.codec_freq_data->vpp_freq;
>> + }
>> + mutex_unlock(&core->lock);
>> +
>> + return load;
>> +}
>> +
>
> <cut>
Regards,
Aniket
Powered by blists - more mailing lists