← Back to team overview

linaro-pkg team mailing list archive

[Bug 709245] Re: ARM SMP scheduler performance bug

 

Ming Lei,

Delay between URB submission and call-back for a given URB is huge indeed...
My hardware (panda rev A3) is fine: linaro-12.05 (kernel-3.4) and linaro-11.09's ethernet works just fine.
My aosp kernel is "based" on kernel-3.0.8 but has wide differences with linaro-11.09 (3.1) kernel, starting with PM_RUNTIME support.

I ran the mass storage test on a Kingston DT mini-fun 4GB usb stick, featuring one ext3 partition. On my panda, I ran:
# mount -o remount,rw /
# mkdir /mnt/msd
# mount -t ext3 /dev/block/sda1 /mnt/msd

# sync && echo 3 > /proc/sys/vm/drop_caches
# busybox dd bs=1M count=16 if=/dev/zero of=/mnt/msd/16MB-file conv=fsync conv=notrunc
16777216 bytes (16.0MB) copied, 144.580627 seconds, 113.3KB/s

# sync && echo 3 > /proc/sys/vm/drop_caches
# busybox dd bs=16M count=1 if=/dev/zero of=/mnt/msd/16MB-file conv=fsync conv=notrunc
16777216 bytes (16.0MB) copied, 137.893890 seconds, 118.8KB/s

Then I assume issue is in ehci stack, not the net stack.
Running "top" shows the cpus are "mostly" idle during the transfer.

I ran usbmon before pluging the usb stick, mounting the FS, and starting the transfer. I interrupted it few seconds after transfer started.
# cat /sys/kernel/debug/usb/usbmon/1u > /sdcard/1.mon.out.20
http://paste.ubuntu.com/1084832/

dmesg:
http://paste.ubuntu.com/1084838/

T:  Bus=01 Lev=02 Prnt=02 Port=02 Cnt=03 Dev#=  5 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0930 ProdID=6545 Rev= 1.00
S:  Manufacturer=Kingston
S:  Product=DT Mini Fun G2
S:  SerialNumber=0060E049DF6FEB9080000883
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0m

-- 
You received this bug notification because you are a member of Linaro
Maintainers, which is the registrant for Linaro Linux.
https://bugs.launchpad.net/bugs/709245

Title:
  ARM SMP scheduler performance bug

Status in Linaro Ubuntu Evaluation Builds:
  Fix Released
Status in Linaro Linux:
  Fix Committed
Status in OEM Priority Project:
  Fix Released
Status in OEM Priority Project maverick series:
  Fix Released
Status in OEM Priority Project natty series:
  Fix Released
Status in OEM Priority Project oneiric series:
  Fix Released
Status in “linux-ti-omap4” package in Ubuntu:
  Fix Released
Status in “linux-ti-omap4” source package in Maverick:
  Fix Released
Status in “linux-ti-omap4” source package in Natty:
  Fix Released
Status in “linux-ti-omap4” source package in Oneiric:
  Fix Released

Bug description:
  Original Bug name: "panda: USB disk IO slow"

  This bug effects ARM Cortex A9 cores, snowball, nvidia, OMAP 4, and
  other Cortex A9 processors.  Problem is in Fedora ARM builds also so
  not limited to Ubuntu.

  My Panda's USB seems to be significantly slower than a Beagle C4.

  hdparm shows buffered reads as ~12MB/s on the Panda, and about ~20-25MB/s on a Beagle C4 from the same
  external Lacie USB disk.

  Kernel is 2.6.37-1002-linaro-omap

  Disk shows as:

  [    5.170440] scsi 0:0:0:0: Direct-Access     LaCie    d2 quadra             PQ: 0 ANSI: 4
  [    5.172546] sd 0:0:0:0: Attached scsi generic sg0 type 0
  [    5.175415] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/465 GiB)

  The board is otherwise idle during the test.

  Doing perf_2.6.37-12 record -a dd if=/dev/sda of=/dev/null bs=4096
  count=100000

  shows :
      81.41%         swapper  [kernel.kallsyms]     [k] default_idle
       6.33%              dd  [kernel.kallsyms]     [k] __copy_to_user
       0.94%         swapper  [kernel.kallsyms]     [k] cpu_idle
       0.51%              dd  [kernel.kallsyms]     [k] __make_request
       0.51%  perf_2.6.37-12  [kernel.kallsyms]     [k] __copy_from_user

  which suggests it's not CPU constrained.

  Dave

To manage notifications about this bug go to:
https://bugs.launchpad.net/linaro-ubuntu/+bug/709245/+subscriptions


Follow ups