Re: EHCI periodic processing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 23 Aug 2010, David Brownell wrote:

> > Wouldn't it make more sense to have scan_periodic()
> > terminate its inner
> > loop whenever it encounters a Q_TYPE_QH entry?  And
> > then do a separate
> > pass over all the interrupt QHs, much like scan_async()
> > does a pass
> > over all the QHs in the async ring?
> 
> Probably better to group by period not type.  Although it
> should be a NOP to scan an IRQ QH that's done nothing.

An expensive NOP.  qh_completions() is a complex function.

>  No
> point in skewing the timings even more, though, by adding
> any type of sort-by-type.

I don't follow.  Can you spell this out in greater detail?  My thought
was just to put all the interrupt QHs on a big list, kind of like the
async ring, and have scan_periodic check them all.  (Or maybe split 
the function up into scan_isochronous and scan_interrupt, since the two 
activities aren't very similar.)

The drawback, of course, is that we would also end up scanning QHs that
_couldn't_ have made any progress because they weren't reachable from
any of the frames we're looking at.  A different approach that would
solve this problem is to keep the current scanning code, but store in
the QH the last frame it was scanned for and skip over QHs that were
just scanned.

> - DaveOtherwise, I think I like what you're suggesting.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux