Re: net2280: tracing

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

 



On 12/29/2014 02:58 PM, Felipe Balbi wrote:
> Hi,
>
> On Mon, Dec 29, 2014 at 02:56:25PM -0500, Jorge Ramirez-Ortiz wrote:
>> On 12/29/2014 11:37 AM, Felipe Balbi wrote:
>>> Hi,
>>>
>>> On Sun, Dec 28, 2014 at 07:28:33PM -0500, Jorge Ramirez-Ortiz wrote:
>>>> On 12/28/2014 11:39 AM, Felipe Balbi wrote:
>>>>> On Sat, Dec 27, 2014 at 05:33:36PM -0500, Jorge Ramirez-Ortiz wrote:
>>>>>> Hi Ricardo/all
>>>>>>
>>>>>> I finally got around to capture a trace of a SS bulk transfer using the net2280.
>>>>>> The trace is available to anyone interested (70 MB file for the Beaglebone 5000).
>>>>> can you publish the trace somewhere we can download ? I use Beagle5000
>>>>> myself and could help revieweing the traces.
>>>>>
>>>> Thanks Felipe.
>>>> I dont have any public ftp server at hand so I just pushed the log to my Xenomai
>>>> git tree.
>>>>
>>>> please grab it from here (no need to clone the tree, just press the download link)
>>>> http://git.xenomai.org/xenomai-jro.git/commit/?h=logs
>>> One of the reasons could be because you're using the printer gadget :-)
>>> Have you tried any of the other gadgets ? In any case, try this little
>>> hack:
>>>
>>> diff --git a/drivers/usb/gadget/legacy/printer.c b/drivers/usb/gadget/legacy/printer.c
>>> index 9054598..8a09661 100644
>>> --- a/drivers/usb/gadget/legacy/printer.c
>>> +++ b/drivers/usb/gadget/legacy/printer.c
>>> @@ -129,7 +129,7 @@ module_param(qlen, uint, S_IRUGO|S_IWUSR);
>>>  
>>>  /* holds our biggest descriptor */
>>>  #define USB_DESC_BUFSIZE		256
>>> -#define USB_BUFSIZE			8192
>>> +#define USB_BUFSIZE			65536
>>>  
>>>  static struct usb_device_descriptor device_desc = {
>>>  	.bLength =		sizeof device_desc,
>> yes I thought about that as well: in fact the trace I made available already had
>> that modification in place.
>> (it also has the queue length increased to 20 - no more changes after those two)
> oh, ok. That would mean the IP can't pump more data :-s
>
>> for simplicity -and to have a common test vehicle- I'll capture a trace using
>> the g_mass_storage (last time I run that check the performance numbers were
>> exactly the same though).


I pushed a new trace using the g_mass_storage driver this time.
http://git.xenomai.org/xenomai-jro.git/commit/?h=logs

LUP/LDN sequences seem to occur at a higher frequency than before (every 16
transfers or earlier)

the test plan as described in the commit:
------------------------------------------
device:
    modprobe net2280
    dd if=/dev/zero of=/tmp/disk bs=256M count=1
    modprobe g_mass_storage file=/tmp/disk
host:
    dd if=/dev/sd{x} of=/dev/null

the transfer speed is pretty much the same than before (around 100MB/s)

[jramirez@XENO ~]$ sudo dd if=/dev/sdb of=/dev/null
524288+0 records in
524288+0 records out
268435456 bytes (268 MB) copied, 2.59402 s, 103 MB/s

This is some information from the host side:
---------------------------------------------

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         3
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            3.18
  iManufacturer           3 Linux 3.18.0-rc7jro-00001-g225426a xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:00:14.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           31
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
        bMaxBurst               0
Hub Descriptor:
  bLength              12
  bDescriptorType      42
  nNbrPorts             6
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood       10 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  bHubDecLat          0.0 micro seconds
  wHubDelay             0 nano seconds
  DeviceRemovable    0x00
 Hub Port Status:
   Port 1: 0000.02a0 5Gbps power Rx.Detect
   Port 2: 0000.02a0 5Gbps power Rx.Detect
   Port 3: 0000.02a0 5Gbps power Rx.Detect
   Port 4: 0000.02a0 5Gbps power Rx.Detect
   Port 5: 0000.02a0 5Gbps power Rx.Detect
   Port 6: 0000.0203 5Gbps power U0 enable connect
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           15
  bNumDeviceCaps          1
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x02
      Latency Tolerance Messages (LTM) Supported
    wSpeedsSupported   0x0008
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   3
      Lowest fully-functional device speed is SuperSpeed (5Gbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat         512 micro seconds
Device Status:     0x0001
  Self Powered

This is the host lshw output
----------------------------

        *-usb:0
             description: USB controller
             product: 8 Series/C220 Series Chipset Family USB xHCI
             vendor: Intel Corporation
             physical id: 14
             bus info: pci@0000:00:14.0
             version: 04
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi xhci bus_master cap_list
             configuration: driver=xhci_hcd latency=0
             resources: irq:28 memory:f7d20000-f7d2ffff
           *-usbhost:0
                product: xHCI Host Controller
                vendor: Linux 3.18.0-rc7jro-00001-g225426a xhci-hcd
                physical id: 0
                bus info: usb@2
                logical name: usb2
                version: 3.18
                capabilities: usb-3.00
                configuration: driver=hub slots=6 speed=5000Mbit/s
              *-usb
                   description: Mass storage device
                   product: Mass Storage Gadget
                   vendor: Linux 3.18.0-rc7jro-00001-g225426a with net2280
                   physical id: 6
                   bus info: usb@2:6
                   logical name: scsi5
                   version: 3.18
                   capabilities: usb-3.00 scsi emulated scsi-host
                   configuration: driver=usb-storage maxpower=8mA speed=5000Mbit/s
                 *-disk
                      description: SCSI Disk
                      physical id: 0.0.0
                      bus info: scsi@5:0.0.0
                      logical name: /dev/sdb
                      size: 256MiB (268MB)
                      configuration: logicalsectorsize=512 sectorsize=512


this is the device lshw output
------------------------------
        *-pci:1
             description: PCI bridge
             product: 8 Series/C220 Series Chipset Family PCI Express Root Port #2
             vendor: Intel Corporation
             physical id: 1c.1
             bus info: pci@0000:00:1c.1
             version: d4
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:25 ioport:2000(size=4096) memory:f7c00000-f7cfffff
ioport:df200000(size=2097152)
           *-usb
                description: USB controller
                product: PLX Technology, Inc.
                vendor: PLX Technology, Inc.
                physical id: 0
                bus info: pci@0000:02:00.0
                version: ab
                width: 32 bits
                clock: 33MHz
                capabilities: pm msi pciexpress usb_device bus_master cap_list rom
                configuration: driver=net2280 latency=0
                resources: irq:34 memory:f7c28000-f7c29fff
memory:f7c10000-f7c1ffff memory:f7c00000-f7c0ffff memory:f7c20000-f7c27fff

>> To use g_printer I wrote a small application service on the device side (I can
>> push it to the same place I put the previous log if you want? let me know)
>
>



--
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