lkml.org 
[lkml]   [2019]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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@codeaurora.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

\
 
 \ /
  Last update: 2019-07-16 06:49    [W:0.048 / U:4.916 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site