All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Chunfeng Yun (云春峰)" <Chunfeng.Yun@mediatek.com>
To: "ikjn@chromium.org" <ikjn@chromium.org>
Cc: "linux-mediatek@lists.infradead.org"
	<linux-mediatek@lists.infradead.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"mathias.nyman@intel.com" <mathias.nyman@intel.com>,
	"Eddie Hung (洪正鑫)" <Eddie.Hung@mediatek.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>
Subject: Re: [PATCH 08/11] usb: xhci-mtk: update fs bus bandwidth by bw_budget_table
Date: Tue, 10 Aug 2021 01:45:16 +0000	[thread overview]
Message-ID: <daf21b34135d3463aeff7e0a6e416e91c577fabb.camel@mediatek.com> (raw)
In-Reply-To: <CAATdQgA9WeKr2UkrcAKY1rP22GtT0bMezdWkb-wyF9Yjx2p_9w@mail.gmail.com>

On Wed, 2021-08-04 at 22:06 +0800, Ikjoon Jang wrote:
> Hi,
> 
> On Wed, Aug 4, 2021 at 1:19 PM Chunfeng Yun <
> chunfeng.yun@mediatek.com> wrote:
> > 
> > On Tue, 2021-08-03 at 14:05 +0800, Ikjoon Jang wrote:
> > > Hi Chunfeng,
> > > 
> > > On Fri, Jul 30, 2021 at 4:51 PM Chunfeng Yun <
> > > chunfeng.yun@mediatek.com> wrote:
> > > > 
> > > > Use @bw_budget_table[] to update fs bus bandwidth due to
> > > > not all microframes consume @bw_cost_per_microframe, see
> > > > setup_sch_info().
> > > > 
> > > > Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
> > > > ---
> > > >  drivers/usb/host/xhci-mtk-sch.c | 17 +++++++----------
> > > >  1 file changed, 7 insertions(+), 10 deletions(-)
> > > > 
> > > > diff --git a/drivers/usb/host/xhci-mtk-sch.c
> > > > b/drivers/usb/host/xhci-mtk-sch.c
> > > > index 0bb1a6295d64..10c0f0f6461f 100644
> > > > --- a/drivers/usb/host/xhci-mtk-sch.c
> > > > +++ b/drivers/usb/host/xhci-mtk-sch.c
> > > > @@ -458,8 +458,8 @@ static int check_fs_bus_bw(struct
> > > > mu3h_sch_ep_info *sch_ep, int offset)
> > > >                  * Compared with hs bus, no matter what ep
> > > > type,
> > > >                  * the hub will always delay one uframe to send
> > > > data
> > > >                  */
> > > > -               for (j = 0; j < sch_ep->cs_count; j++) {
> > > > -                       tmp = tt->fs_bus_bw[base + j] + sch_ep-
> > > > >bw_cost_per_microframe;
> > > > +               for (j = 0; j < sch_ep->num_budget_microframes; 
> > > > j++) {
> > > > +                       tmp = tt->fs_bus_bw[base + j] + sch_ep-
> > > > >bw_budget_table[j];
> > > >                         if (tmp > FS_PAYLOAD_MAX)
> > > >                                 return -ESCH_BW_OVERFLOW;
> > > >                 }
> > > > @@ -534,21 +534,18 @@ static void update_sch_tt(struct
> > > > mu3h_sch_ep_info *sch_ep, bool used)
> > > >  {
> > > >         struct mu3h_sch_tt *tt = sch_ep->sch_tt;
> > > >         u32 base, num_esit;
> > > > -       int bw_updated;
> > > >         int i, j;
> > > > 
> > > >         num_esit = XHCI_MTK_MAX_ESIT / sch_ep->esit;
> > > > 
> > > > -       if (used)
> > > > -               bw_updated = sch_ep->bw_cost_per_microframe;
> > > > -       else
> > > > -               bw_updated = -sch_ep->bw_cost_per_microframe;
> > > > -
> > > >         for (i = 0; i < num_esit; i++) {
> > > >                 base = sch_ep->offset + i * sch_ep->esit;
> > > > 
> > > > -               for (j = 0; j < sch_ep->cs_count; j++)
> > > > -                       tt->fs_bus_bw[base + j] += bw_updated;
> > > > +               for (j = 0; j < sch_ep->num_budget_microframes; 
> > > > j++)
> > > > +                       if (used)
> > > > +                               tt->fs_bus_bw[base + j] +=
> > > > sch_ep->bw_budget_table[j];
> > > > +                       else
> > > > +                               tt->fs_bus_bw[base + j] -=
> > > > sch_ep->bw_budget_table[j];
> > > 
> > > I agree that xhci-mtk-sch still has more rooms for tt periodic
> > > bandwidth
> > > but I think this approach could trigger a problem.
> > 
> > See updat_bus_bw(), when add fs ep's bandwidth, it uses
> > bw_budget_table[], so prefer to use the same way
> > 
> > > 
> > > for example, if there are two endpoints scheduled in the same u-
> > > frame index,
> > > * ep1out  = iso 192bytes bw_budget_table[] = { 188, 188, 0, ...}
> > > --> y0
> > > * ep2in = int 64bytes, bw_budget_table[] = { 0, 0, 64, ... }  -->
> > > y0
> > > 
> > > (If this is possible allocation from this patch),
> > > I guess xhci-mtk could have some problems on internal scheduling?
> > 
> > Test it on dvt env. don't encounter issues;
> > 
> 
> As you can see In the above example, this patch starts to allow that
> allocation.
> Do you mean that we don't have to worry about such a case (on all MTK
> platforms)?
No, that is another question, when update bus_bw[] and fs_bus_bw[] for
FS with TT should use the same bw_budget_table[] which is filled in
setup_sch_info(). If the bw_budget_table[] is something wrong, we can
prepare new patch to fix it.

> 
> thanks
> 
> > Thanks
> > 
> > > 
> > > >         }
> > > > 
> > > >         if (used)
> > > > --
> > > > 2.18.0
> > > > 

  reply	other threads:[~2021-08-10  1:45 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-30  8:49 [PATCH 01/11] dt-bindings: usb: mtk-xhci: add support property 'tpl-support' Chunfeng Yun
2021-07-30  8:49 ` Chunfeng Yun
2021-07-30  8:49 ` Chunfeng Yun
2021-07-30  8:49 ` [PATCH 02/11] dt-bindings: usb: mtk-xhci: add optional property to disable usb2 ports Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-08-06 20:41   ` Rob Herring
2021-08-06 20:41     ` Rob Herring
2021-08-06 20:41     ` Rob Herring
2021-08-11  8:12     ` Chunfeng Yun (云春峰)
2021-07-30  8:49 ` [PATCH 03/11] dt-bindings: usb: mtk-xhci: add compatible for mt8195 Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-08-06 20:43   ` Rob Herring
2021-08-06 20:43     ` Rob Herring
2021-08-06 20:43     ` Rob Herring
2021-08-11  8:02     ` Chunfeng Yun (云春峰)
2021-08-18 14:20       ` Rob Herring
2021-08-18 14:20         ` Rob Herring
2021-08-18 14:20         ` Rob Herring
2021-08-19 11:36         ` Chunfeng Yun (云春峰)
2021-07-30  8:49 ` [PATCH 04/11] usb: xhci-mtk: fix use-after-free of mtk->hcd Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-08-13  5:26   ` Ikjoon Jang
2021-08-13  5:26     ` Ikjoon Jang
2021-08-13  5:26     ` Ikjoon Jang
2021-07-30  8:49 ` [PATCH 05/11] usb: xhci-mtk: add support 'tpl-support' Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49 ` [PATCH 06/11] usb: xhci-mtk: support option to disable usb2 ports Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49 ` [PATCH 07/11] usb: xhci-mtk: fix issue of out-of-bounds array access Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49 ` [PATCH 08/11] usb: xhci-mtk: update fs bus bandwidth by bw_budget_table Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-07-30  8:49   ` Chunfeng Yun
2021-08-03  6:05   ` Ikjoon Jang
2021-08-03  6:05     ` Ikjoon Jang
2021-08-03  6:05     ` Ikjoon Jang
2021-08-04  5:19     ` Chunfeng Yun
2021-08-04  5:19       ` Chunfeng Yun
2021-08-04  5:19       ` Chunfeng Yun
2021-08-04 14:06       ` Ikjoon Jang
2021-08-04 14:06         ` Ikjoon Jang
2021-08-04 14:06         ` Ikjoon Jang
2021-08-10  1:45         ` Chunfeng Yun (云春峰) [this message]
2021-07-30  8:50 ` [PATCH 09/11] usb: xhci-mtk: check boundary before check tt Chunfeng Yun
2021-07-30  8:50   ` Chunfeng Yun
2021-07-30  8:50   ` Chunfeng Yun
2021-08-09  7:32   ` Ikjoon Jang
2021-08-09  7:32     ` Ikjoon Jang
2021-08-09  7:32     ` Ikjoon Jang
2021-08-11  8:18     ` Chunfeng Yun (云春峰)
2021-07-30  8:50 ` [PATCH 10/11] usb: xhci-mtk: add a member of num_esit Chunfeng Yun
2021-07-30  8:50   ` Chunfeng Yun
2021-07-30  8:50   ` Chunfeng Yun
2021-07-30  8:50 ` [PATCH 11/11] usb: xhci-mtk: modify the SOF/ITP interval for mt8195 Chunfeng Yun
2021-07-30  8:50   ` Chunfeng Yun
2021-07-30  8:50   ` Chunfeng Yun
2021-08-06 20:37 ` [PATCH 01/11] dt-bindings: usb: mtk-xhci: add support property 'tpl-support' Rob Herring
2021-08-06 20:37   ` Rob Herring
2021-08-06 20:37   ` Rob Herring
2021-08-11  7:54   ` Chunfeng Yun (云春峰)
2021-08-12  2:28   ` Chunfeng Yun (云春峰)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=daf21b34135d3463aeff7e0a6e416e91c577fabb.camel@mediatek.com \
    --to=chunfeng.yun@mediatek.com \
    --cc=Eddie.Hung@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=ikjn@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=matthias.bgg@gmail.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.