I am trying to use g_ether with a USB 3 gadget (PLX 3380). During testing I noticed that the transfer speed is much lower than expected at 42MB/s vs a 95Mb/s for a gigabit connection between the same machines. The same gadget is capable of transferring 170MB/s via USB 3 when reading from a g_mass_storage provided virtual drive. Perusing the code of f_ecm.c I noticed that the maximum theoretical bitrate for USB 3 gadgets is calculated as 13 * 1024 * 8 * 1000 * 8 = 851,968,000 (roughly 850Mbit/s) and for USB 2 gadgets as 13 * 512 * 8 * 1000 * 8 = 425,984,000 (roughly 425 Mbit/s). I was wondering what that calculation is based on? The 1024/512 seem to be the IN/OUT buffer size being used. Technically USB3 allows for a native bitrate (after 8/10b coding) of 4Gbit/s. Regards, Paul. On 18 Jan 2015, at 16:49, Paul Jones <p.jones@xxxxxxxxxx> wrote: > Ricardo, > > I think I figured out the problem: my 3380 was running in legacy adapter mode. > I am now capable of connecting both g_mass_storage and g_ether without any kernel panics after ensuring the 3380 is in enhanced adapter mode. > > My only concern is the speed from my Mac to Linux: > - g_ether: scp transfer 42Mb/s > - g_mass_storage: dd bs=64k 116Mb/s (backed by SSD storage) > For comparison, a direct gigabit connection allows between 90 and 95Mb/s using scp between the machines. > Local writes on the linux side using dd is around 480Mb/s (on the same SSD storage). > > Any ideas on how to achieve a higher performance? > > Regards, > Paul. -- 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