From owner-freebsd-arm@freebsd.org Fri Jul 31 02:10:24 2015 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 326B19AEA63 for ; Fri, 31 Jul 2015 02:10:24 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (mail.turbocat.net [IPv6:2a01:4f8:d16:4514::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D4BBEED6 for ; Fri, 31 Jul 2015 02:10:23 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (cm-176.74.213.204.customer.telag.net [176.74.213.204]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id D5E1D1FE022; Fri, 31 Jul 2015 04:10:21 +0200 (CEST) Message-ID: <55BAD963.9000808@selasky.org> Date: Fri, 31 Jul 2015 04:11:47 +0200 From: Hans Petter Selasky User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Svatopluk Kraus CC: "freebsd-arm@freebsd.org" Subject: Re: [RPI-B] [HEADS UP] DWC OTG TX path optimisation for 11-current References: <55A7D8CE.4020809@selasky.org> <55B23276.8090703@selasky.org> <55B73113.2020308@selasky.org> <55B8AB76.7030603@selasky.org> <55B8B297.1010008@selasky.org> <20150729154516.GH78154@funkthat.com> <55B8F5EC.2050908@selasky.org> <55B9F914.7030403@selasky.org> <55BA1889.4040509@selasky.org> <55BA1AC7.4050602@selasky.org> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2015 02:10:24 -0000 On 07/30/15 17:22, Svatopluk Kraus wrote: > Well, I'm trying to join answers for your previous emails in this one. > > On Thu, Jul 30, 2015 at 2:38 PM, Hans Petter Selasky wrote: >> On 07/30/15 14:28, Hans Petter Selasky wrote: >> >> Can you run only "usbdump" while the interface is UP and the errors are printed in the console? >> >> We are looking for ERR different from "0". > > > It looks that there is no ERR different from "0" in usbdump at all. > Again, it looks that the load is generated "internally" and it does > not depend on explicit usb request directly. > >> >> Does the interface come back when you down/up it? > > Yes, it works. > >> BTW: All your USB HUBs are self powered? > > Yes, my usb hub has external power supply (12V, 4A) and my usb disk is > connected only. > >> >> Does the device recover if you do: >> >> usbconfig -d X.Y reset >> >> for the ue0 ? > > Yes, it does. > > > Anyhow, I think that I figured out why the system has so slow response > time when it's triggered. In general, it's not good idea to not limit > somehow interrupt filter execution time. If something wrong is > happening, then such filter can halt all system. I can get back fast > system response time with attached patch. Note that it's only a > proof-of-concept patch and it does not remove the problem. There is > still something what generates big load when it's triggered even if > system is 99% idle after trigger was pulled. > > Svata > Hi, Your patch looks OK, though I would really like to know why the repeat statement is looping. Does the following patch make any difference for you? > Index: sys/dev/usb/controller/dwc_otg.c > =================================================================== > --- sys/dev/usb/controller/dwc_otg.c (revision 286002) > +++ sys/dev/usb/controller/dwc_otg.c (working copy) > @@ -579,6 +579,9 @@ > sc->sc_irq_mask |= GINTMSK_RXFLVLMSK; > DWC_OTG_WRITE_4(sc, DOTG_GINTMSK, sc->sc_irq_mask); > > + /* clear RX FIFO level interrupt */ > + DWC_OTG_WRITE_4(sc, DOTG_GINTSTS, GINTMSK_RXFLVL); > + > /* clear cached status */ > sc->sc_last_rx_status = 0; > } --HPS