Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Dec 1999 08:43:19 -0800 (PST)
From:      Nick Hibma <n_hibma@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/usb uhci.c
Message-ID:  <199912021643.IAA11449@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
n_hibma     1999/12/02 08:43:19 PST

  Modified files:
    sys/dev/usb          uhci.c 
  Log:
  In one queue all the TDs (transfer descriptor, packets) for one transfer
  are queued.  Traverse the queues vertically and then horizontally.
  This means that TDs for one xfer are transmitted back to back until the
  first NAK or error condition. Up to now we transmitted a TD per frame
  and transmitted the next TD in the next frame.
  
  The old approach is more fair if you have the end of the queue point at
  the beginning of the control transfer queue, but also a lot more overhead
  due to the fact that the QHs have to be read more often.
  
  The new approach squirts the packets down the line as fast as possible
  for one transfer and then does the next one. In the current situation,
  with fairly empty USB buses, this is a more sensible approach. We might
  have to revisit the scheduler later however.
  
  It speeds up large transfers (Zip drive, Host-To-Host adapters) on UHCI
  by a factor of 5 and makes it as fast as OHCI on the bus.
  
  The next problem to solve is the question why the limit is 300kb/s and
  not 1000/kb/s (kb == kilobyte).
  
  Revision  Changes    Path
  1.35      +7 -4      src/sys/dev/usb/uhci.c



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199912021643.IAA11449>