From: Brent Page <brentfpage@gmail.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: linux-usb@vger.kernel.org, Michal Pecio <michal.pecio@gmail.com>
Subject: Re: [PATCH] USB: EHCI: inflate max_tt_usecs and implement sitd backpointers
Date: Mon, 1 Jun 2026 23:52:29 -0700 [thread overview]
Message-ID: <EC0D612B-B61B-4652-9CAB-FCED814F46AC@gmail.com> (raw)
In-Reply-To: <bfdd7729-be9a-4014-87bc-7b7a5b393980@rowland.harvard.edu>
> That loop adds three new "blank" sitds to iso_sched. At the end of
> sitd_urb_transaction(), the picture looks like this:
>
> +-> iso_sched <--> new2 <--> new1 <--> new0 <-+
> | |
> +---------------------------------------------+
But for an iso endpoint, the schedule should never be empty (except for
when the very first urb comes in). So, there are sitds that are already
scheduled before the new sitds come in, and I think in total the picture
will look like, e.g.,
+-> stream <--> new2 <--> new1 <--> new0 <--
| --> prev2 <--> prev1 <--> prev0 <-+
| |
+-------------------------------------------------+
Then, after
2177 sitd = list_entry(iso_sched->td_list.next,
2178 struct ehci_itd, sitd_list);
2179 list_move_tail(&sitd->sitd_list, &stream->td_list);
is executed 3x, the schedule will look like
+-> stream <--> prev2 <--> prev1 <--> prev0 <--
| --> new2 <--> new1 <--> new0 <-+
| |
+-------------------------------------------------+
> As far as I can see, there's nothing wrong with
> allowing the first uframe to be partially occupied as long as the new
> sitd is added to the end of the uframe's queue, so it doesn't delay the
> sitd's already there.
Oh yeah, I see that – because then the large sitd can partially occupy
the uframe without needing to be broken up.
> But in general, things will be simpler if each new sitd is always added
> to the end of the queue. The code should be changed to do this.
To be conservative, I didn't change sitd_link() in the patch. I just
submitted the newest version to this thread. The whitespace formatting
should be correct now.
From,
Brent Page
next prev parent reply other threads:[~2026-06-02 6:52 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-18 6:42 [PATCH] USB: EHCI: inflate max_tt_usecs and implement sitd backpointers Brent Page
2026-05-18 18:24 ` Brent Page
2026-05-20 17:05 ` Brent Page
2026-05-21 5:52 ` Greg KH
2026-05-22 14:18 ` Alan Stern
2026-06-02 6:42 ` [PATCH] " Brent Page
2026-06-02 19:35 ` Alan Stern
2026-06-22 5:43 ` Brent Page
2026-06-02 6:52 ` Brent Page [this message]
2026-06-02 14:26 ` [PATCH] USB: EHCI: " Alan Stern
2026-06-22 5:19 ` Brent Page
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=EC0D612B-B61B-4652-9CAB-FCED814F46AC@gmail.com \
--to=brentfpage@gmail.com \
--cc=linux-usb@vger.kernel.org \
--cc=michal.pecio@gmail.com \
--cc=stern@rowland.harvard.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox