DWC OTG TX path optimisation for 11-current

Svatopluk Kraus onwahe at gmail.com
Tue Aug 18 12:31:03 UTC 2015


On Tue, Aug 18, 2015 at 1:54 PM, Hans Petter Selasky <hps at selasky.org> wrote:
> Hi,
>
> On 08/18/15 13:22, Svatopluk Kraus wrote:
>>
>> Do I understand it well that you are not able to trigger the problem?
>
>
> Maybe I haven't been trying hard enough. I've been using a kernel built from
> "projects/hps_head" which I just updated to include the latest DWC OTG
> patches, instead of "head". There was today a timer subsystem fix, not sure
> if it makes any difference:
>
> https://svnweb.freebsd.org/changeset/base/286880
>
> I will try to buildworld from an external USB disk later today and see what
> happens.
>
>>
>> and still the system response time is terrible.
>
>
> If you can do:
>
> usbconfig -d 0.1 set_config 255
>
> And verify that the IRQ rate goes to zero for DWC OTG, then we maybe could
> rule out USB.
>

Note that my root filesystem was on usb disk.

root at rpi2:~ # usbconfig
ugen0.1: <OTG Root HUB DWCOTG> at usbus0, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
ugen0.2: <product 0x9514 vendor 0x0424> at usbus0, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=SAVE (2mA)
ugen0.3: <product 0xec00 vendor 0x0424> at usbus0, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=ON (2mA)
ugen0.4: <USB2.0 Hub VIA Labs, Inc.> at usbus0, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
ugen0.5: <USB2.0 Hub VIA Labs, Inc.> at usbus0, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
ugen0.6: <HD710 ADATA> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (0mA)
root at rpi2:~ #
root at rpi2:~ # usbconfig -d 0.1 set_config 255
uhub0: at usbus0, port 1, addr 1 (disconnected)
ugen0.2: <vendor 0x0424> at usbus0 (disconnected)
uhub1: at uhub0, port 1, addr 2 (disconnected)
ugen0.3: <vendor 0x0424> at usbus0 (disconnected)
smsc0: at uhub1, port 1, addr 3 (disconnected)
ukphy0: detached
miibus0: detached
ugen0.4: <VIA Labs, Inc.> at usbus0 (disconnected)
uhub2: at uhub1, port 3, addr 4 (disconnected)
ugen0.5: <VIA Labs, Inc.> at usbus0 (disconnected)
uhub3: at uhub2, port 1, addr 5 (disconnected)
ugen0.6: <ADATA> at usbus0 (disconnected)
umass0: at uhub2, port 4, addr 6 (disconnected)
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <ADATA HD710 AX00> detached
(da0:umass-sim0:0:0:0): Periph destroyed
Device da0s1a went missing before all of the data could be written to
it; expect data loss.
root at rpi2:~ # vmstat -i
interrupt                          total       rate
irq1: mbox0                           27          0
irq2: vchiq0                           7          0
irq17: bcm283x_dwco            569952361         31
irq26: bcm_dma0                      962          0
irq65: uart0                     7945865         38
irq70: sdhci_bcm0                    496          0
irq73: generic_time             19199003         21
irq76: ipi                        853597          9
Total                          597952318       6229
root at rpi2:~ # vmstat -i -w1
interrupt                          total       rate
irq1: mbox0                           27          0
irq2: vchiq0                           7          0
irq17: bcm283x_dwco            569961155         32
irq26: bcm_dma0                      962          0
irq65: uart0                     7946417         38
irq70: sdhci_bcm0                    496          0
irq73: generic_time             19199024         21
irq76: ipi                        853615          9
Total                          597961703       6229
irq1: mbox0                            0          0
irq2: vchiq0                           0          0
irq17: bcm283x_dwco                  550        472
irq26: bcm_dma0                        0          0
irq65: uart0                         526        451
irq70: sdhci_bcm0                      0          0
irq73: generic_time                   12         10
irq76: ipi                             4          3
Total                               1092        937
irq1: mbox0                            0          0
irq2: vchiq0                           0          0
irq17: bcm283x_dwco                  640        598
irq26: bcm_dma0                        0          0
irq65: uart0                         474        443
irq70: sdhci_bcm0                      0          0
irq73: generic_time                   10          9
irq76: ipi                             2          2
Total                               1126       1052
irq1: mbox0                            0          0
irq2: vchiq0                           0          0
irq17: bcm283x_dwco                  456        425
irq26: bcm_dma0                        0          0
irq65: uart0                         476        444
irq70: sdhci_bcm0                      0          0
irq73: generic_time                   13         12
irq76: ipi                             3          3
Total                                948        884
irq1: mbox0                            0          0
irq2: vchiq0                           0          0
irq17: bcm283x_dwco                  219        205
irq26: bcm_dma0                        0          0
irq65: uart0                         476        446
irq70: sdhci_bcm0                      0          0
irq73: generic_time                   12         11
irq76: ipi                             2          2
Total                                709        664
^C
root at rpi2:~ # usbconfig
ugen0.1: <OTG Root HUB DWCOTG> at usbus0, cfg=255 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
root at rpi2:~ # usbconfig

Svata


More information about the freebsd-arm mailing list