From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:59634) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTb9P-0001Ti-2g for qemu-devel@nongnu.org; Mon, 06 Jun 2011 10:51:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QTb9N-0008LK-Hi for qemu-devel@nongnu.org; Mon, 06 Jun 2011 10:51:30 -0400 Received: from sj-iport-1.cisco.com ([171.71.176.70]:10623) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTb9M-0008Kh-FG for qemu-devel@nongnu.org; Mon, 06 Jun 2011 10:51:29 -0400 Message-ID: <4DECE95E.3030001@cisco.com> Date: Mon, 06 Jun 2011 08:51:10 -0600 From: David Ahern MIME-Version: 1.0 References: <1307363962-27223-1-git-send-email-kraxel@redhat.com> <1307363962-27223-14-git-send-email-kraxel@redhat.com> <4DECD780.5020807@cisco.com> <4DECDCBB.1010609@cisco.com> <4DECE34F.4020904@redhat.com> In-Reply-To: <4DECE34F.4020904@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 13/31] usb-ehci: drop EXECUTING checks. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org On 06/06/2011 08:25 AM, Gerd Hoffmann wrote: > > Hi, > >>>> -#if EHCI_DEBUG == 0 >>>> - if (qemu_get_clock_ns(vm_clock) / 1000>= ehci->frame_end_usec) { >>>> - if (async) { >>>> - DPRINTF("FETCHENTRY: FRAME timer elapsed, exit state >>>> machine\n"); >>>> - goto out; >>>> - } else { >>>> - DPRINTF("FETCHENTRY: WARNING " >>>> - "- frame timer elapsed during periodic\n"); >>>> - } >>>> - } >>>> -#endif >> >> This check was added to per Section 4 of the EHCI spec -- the HC should >> not start transactions that will not be completed before the end of the >> micro-frame. If you remove this what causes the EHCI model to take a >> breather? > > Look at patch #8. That brings a number of state machine changes. One > of them is that the async schedule stops as soon as it notices it walks > in circles (i.e. sees a QH the second time). > >>>> - case EST_FETCHENTRY: >>>> - /* fall through */ >>> >>> Why drop this case too? As I recall that is needed for proper execution. > > The async schedule doesn't pause in fetchentry state any more (also done > by patch #8). Ok. see that now. David > > cheers, > Gerd >