Message ID | 20221111032515.3460-5-quic_bjorande@quicinc.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | interconnect: osm-l3: SC8280XP L3 and DDR scaling | expand |
On 11/11/22 08:55, Bjorn Andersson wrote: > The aggregation over votes for all nodes in the provider will always > only find the bandwidth votes for the destination side of the path. > Further more, the average kBps value will always be 0. > > Simplify the logic by directly looking at the destination node's peak > bandwidth request. > > Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> > Tested-by: Steev Klimaszewski <steev@kali.org> Reviewed-by: Sibi Sankar <quic_sibis@quicinc.com> > --- > > Changes since v1: > - None > > drivers/interconnect/qcom/osm-l3.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > diff --git a/drivers/interconnect/qcom/osm-l3.c b/drivers/interconnect/qcom/osm-l3.c > index 469be732a00b..5fa171087425 100644 > --- a/drivers/interconnect/qcom/osm-l3.c > +++ b/drivers/interconnect/qcom/osm-l3.c > @@ -134,22 +134,14 @@ static int qcom_osm_l3_set(struct icc_node *src, struct icc_node *dst) > struct qcom_osm_l3_icc_provider *qp; > struct icc_provider *provider; > const struct qcom_osm_l3_node *qn; > - struct icc_node *n; > unsigned int index; > - u32 agg_peak = 0; > - u32 agg_avg = 0; > u64 rate; > > qn = src->data; > provider = src->provider; > qp = to_osm_l3_provider(provider); > > - list_for_each_entry(n, &provider->nodes, node_list) > - provider->aggregate(n, 0, n->avg_bw, n->peak_bw, > - &agg_avg, &agg_peak); > - > - rate = max(agg_avg, agg_peak); > - rate = icc_units_to_bps(rate); > + rate = icc_units_to_bps(dst->peak_bw); > do_div(rate, qn->buswidth); > > for (index = 0; index < qp->max_state - 1; index++) {
diff --git a/drivers/interconnect/qcom/osm-l3.c b/drivers/interconnect/qcom/osm-l3.c index 469be732a00b..5fa171087425 100644 --- a/drivers/interconnect/qcom/osm-l3.c +++ b/drivers/interconnect/qcom/osm-l3.c @@ -134,22 +134,14 @@ static int qcom_osm_l3_set(struct icc_node *src, struct icc_node *dst) struct qcom_osm_l3_icc_provider *qp; struct icc_provider *provider; const struct qcom_osm_l3_node *qn; - struct icc_node *n; unsigned int index; - u32 agg_peak = 0; - u32 agg_avg = 0; u64 rate; qn = src->data; provider = src->provider; qp = to_osm_l3_provider(provider); - list_for_each_entry(n, &provider->nodes, node_list) - provider->aggregate(n, 0, n->avg_bw, n->peak_bw, - &agg_avg, &agg_peak); - - rate = max(agg_avg, agg_peak); - rate = icc_units_to_bps(rate); + rate = icc_units_to_bps(dst->peak_bw); do_div(rate, qn->buswidth); for (index = 0; index < qp->max_state - 1; index++) {