Hello,

I could successfully create a Yocto based embedded Linux build such as
discussed in the following thread:

http://www.mail-archive.com/[email protected]/msg01284.html

Now I'm facing another challenge: how do I set up the kernel
configuration in order to have a correct latency performance.

I'm using Freescale's iMX53 Quick Start Board. Below it is the latency results:

root@imx53qsb:~# latency
== Sampling period: 1000 us
== Test mode: periodic user-mode task
== All results in microseconds
warming up...
RTT|  00:00:01  (periodic user-mode task, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|1250000.000|-1928116.749|-1428616.749|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1366850.547|1866350.547|       0|     0|1250000.000|-1428616.749
RTD|1250000.000| 366850.547| 866350.547|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-633149.453|-133649.453|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1633149.453|-1133649.453|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1661817.843|-2133649.453|       0|
0|1250000.000|-1428616.749
RTD|1250000.000| 661817.843|1161317.843|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-338182.157| 161317.843|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1338182.157|-838682.157|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1956785.139|-1838682.157|       0|
0|1250000.000|-1428616.749
RTD|1250000.000| 956785.139|1456285.139|       0|     0|1250000.000|-1428616.749
RTD|1250000.000| -43214.861| 456285.139|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1043214.861|-543714.861|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|-2043214.861|-1543714.861|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1251752.435|1751252.435|       0|     0|1250000.000|-1428616.749
RTD|1250000.000| 251752.435| 751252.435|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-748247.565|-248747.565|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1748247.565|-1248747.565|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1546719.731|2046219.731|       0|     0|1250000.000|-1428616.749
RTD|1250000.000| 546719.731|1046219.731|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-453280.269|  46219.731|       0|     0|1250000.000|-1428616.749
RTT|  00:00:22  (periodic user-mode task, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|1250000.000|-1453280.269|-953780.269|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1841687.027|-1953780.269|       0|
0|1250000.000|-1428616.749
RTD|1250000.000| 841687.027|1341187.027|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-158312.973| 341187.027|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1158312.973|-658812.973|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|2136654.323|-1658812.973|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1136654.323|1636154.323|       0|     0|1250000.000|-1428616.749
RTD|1250000.000| 136654.323| 636154.323|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-863345.677|-363845.677|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1863345.677|-1363845.677|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1431621.619|1931121.619|       0|     0|1250000.000|-1428616.749
RTD|1250000.000| 431621.619| 931121.619|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-568378.381| -68878.381|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1568378.381|-1068878.381|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1726588.915|-2068878.381|       0|
0|1250000.000|-1428616.749
RTD|1250000.000| 726588.915|1226088.915|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-273411.085| 226088.915|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1273411.085|-773911.085|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|2021556.211|-1773911.085|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1021556.211|1521056.211|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|  21556.211| 521056.211|       0|     0|1250000.000|-1428616.749
RTT|  00:00:43  (periodic user-mode task, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|1250000.000|-978443.789|-478943.789|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1978443.789|-1478943.789|       0|
0|1250000.000|-1428616.749
RTD|1250000.000|1316523.507|1816023.507|       0|     0|1250000.000|-1428616.749
RTD|1250000.000| 316523.507| 816023.507|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-683476.493|-183976.493|       0|     0|1250000.000|-1428616.749
RTD|1250000.000|-1683476.493|-1183976.493|       0|
0|1250000.000|-1428616.749
---|-----------|-----------|-----------|--------|------|-------------------------
RTS|1250000.000| 341687.027|-1428616.749|       0|     0|    00:00:49/00:00:49
root@imx53qsb:~#

My kernel boot message is the following:

root@imx53qsb:~# dmesg
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.35.3-11.09.01+yocto-gd86aa36-svn795-dirty
(raul@phi04) (gcc version 4.6.4 20120303 (prerelease) (GCC) ) #1
PREEMPT Tue Oct 16 12:26:08 BRT 2012
CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Freescale MX53 LOCO Board
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 253952
free_area_init_node: node 0, pgdat 808c9a8c, node_mem_map 8092d000
  DMA zone: 224 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 28448 pages, LIFO batch:7
  Normal zone: 2848 pages used for memmap
  Normal zone: 222432 pages, LIFO batch:31
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 250880
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rw
rootfstype=ext3 rootwait
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 480MB 512MB = 992MB total
Memory: 997716k/997716k available, 18092k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xf8e00000 - 0xffe00000   ( 112 MB)
    vmalloc : 0xe0800000 - 0xf4000000   ( 312 MB)
    lowmem  : 0x80000000 - 0xe0000000   (1536 MB)
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)
      .init : 0x80008000 - 0x8002e000   ( 152 kB)
      .text : 0x8002e000 - 0x8084f000   (8324 kB)
      .data : 0x80876000 - 0x808ca900   ( 339 kB)
SLUB: Genslabs=9, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
        RCU-based detection of stalled CPUs is disabled.
        Verbose stalled-CPUs detection is disabled.
NR_IRQS:368
MXC GPIO hardware
MXC IRQ initialized
I-pipe, 8.000 MHz clocksource
MXC_Early serial console at MMIO 0x53fbc000 (options '115200')
bootconsole [ttymxc0] enabled
I-pipe 1.18-03: pipeline enabled.
Console: colour dummy device 80x30
Calibrating delay loop... 999.42 BogoMIPS (lpj=4997120)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
Initializing cgroup subsys devices
Initializing cgroup subsys freezer
Initializing cgroup subsys blkio
CPU: Testing write buffer coherency: ok
devtmpfs: initialized
regulator: core version 0.5
NET: Registered protocol family 16
i.MX IRAM pool: 128 KB@0xe0840000
IRAM READY
CPU is i.MX53 Revision 2.1
Using SDMA I.API
MXC DMA API initialized
IMX usb wakeup probe
the wakeup pdata is 0x808839f8
IMX usb wakeup probe
the wakeup pdata is 0x80883aac
bio: create slab <bio-0> at 0
SCSI subsystem initialized
libata version 3.00 loaded.
Freescale USB OTG Driver loaded, $Revision: 1.55 $

****************************** NOTICE *****************************
You have seen this notice as you have enabled OTG driver for mx53 LOCO board
For mx53 loco board, the OTG function is unavailable due to hardware limitation
So, Only one usb function (device or host) can be available for certain image
Please config your kernel to disable OTG and the usb function you
don't want to use
And remain the other usb function you would like to use

Below OTG configs should be removed:
CONFIG_MXC_OTG, CONFIG_USB_OTG

Choose one of below configs for host or device function
But DO NOT choose them together

OTG host config
CONFIG_USB_EHCI_ARC_OTG

OTG device config
CONFIG_USB_GADGET

usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
PMIC Light driver loading...
Advanced Linux Sound Architecture Driver Version 1.0.23.
Bluetooth: Core ver 2.15
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
mc34708 Rev 2.4 FinVer 0 detected
PMIC MC34708 ID:0x14
regulator: SW1: 650 <--> 1437 mV at 1250 mV
regulator: SW1B: 650 <--> 1437 mV at 1100 mV
regulator: SW2: 650 <--> 1437 mV at 1300 mV
regulator: SW3: 650 <--> 1425 mV at 1200 mV
regulator: SW4A: 1200 <--> 3300 mV at 1500 mV
regulator: SW4B: 1200 <--> 3300 mV at 1500 mV
regulator: SW5: 1200 <--> 1975 mV at 1800 mV
regulator: SWBST:
regulator: VPLL: 1200 <--> 1800 mV at 1800 mV
regulator: VREFDDR:
regulator: VDAC: 2500 <--> 2775 mV at 2775 mV
regulator: VUSB:
regulator: VUSB2: 2500 <--> 3000 mV at 2500 mV
regulator: VGEN1: 1200 <--> 1550 mV at 1300 mV
regulator: VGEN2: 2500 <--> 3300 mV at 2500 mV
pmic 0-0008: Loaded
Switching to clocksource ipipe_tsc
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
UDP hash table entries: 512 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 512 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
LPMode driver module loaded
Static Power Management for Freescale i.MX5
PM driver module loaded
sdram autogating driver module loaded
Bus freq driver module loaded
DI1 is primary
mxc_dvfs_core_probe
DVFS driver module loaded
DVFS PER driver module loaded
I-pipe: Domain Xenomai registered.
Xenomai: hal/arm started.
Xenomai: scheduling class idle registered.
Xenomai: scheduling class rt registered.
Xenomai: real-time nucleus v2.6.1 (Light Years Away) loaded.
Xenomai: debug mode enabled.
Xenomai: starting native API services.
Xenomai: starting POSIX services.
Xenomai: starting RTDM services.
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 1948
alg: No test for stdrng (krng)
cryptodev: driver loaded.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
regulator: get() with no identifier
By setting, SII driver will not be enabled
By setting, LDB driver will not be enabled
mxc_ipu mxc_ipu: Channel already disabled 9
mxc_ipu mxc_ipu: Channel already uninitialized 9
IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
DMFC high resolution has set, will not change
Console: switching to colour frame buffer device 128x48
mxc_ipu mxc_ipu: Channel already disabled 7
mxc_ipu mxc_ipu: Channel already uninitialized 7
mxc_ipu mxc_ipu: Channel already disabled 10
mxc_ipu mxc_ipu: Channel already uninitialized 10
Serial: MXC Internal UART driver
mxcintuart.0: ttymxc0 at MMIO 0x53fbc000 (irq = 31) is a Freescale i.MX
console [ttymxc0] enabled, bootconsole disabled
mxcintuart.1: ttymxc1 at MMIO 0x53fc0000 (irq = 32) is a Freescale i.MX
mxcintuart.2: ttymxc2 at MMIO 0x5000c000 (irq = 33) is a Freescale i.MX
mxcintuart.3: ttymxc3 at MMIO 0x53ff0000 (irq = 13) is a Freescale i.MX
mxcintuart.4: ttymxc4 at MMIO 0x63f90000 (irq = 86) is a Freescale i.MX
loop: module loaded
No sata disk.
MXC MTD nand Driver 3.0
vcan: Virtual CAN interface driver
Freescale FlexCAN Driver
FEC Ethernet Driver
fec_enet_mii_bus: probed
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 18, io base 0x53f80000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 14, io base 0x53f80200
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and
ISDN adapters
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
ARC USBOTG Device Controller driver (1 August 2005)
mice: PS/2 mouse device common for all mice
input: gpio-keys as /devices/platform/gpio-keys/input/input0
MXC keypad loaded
input: mxc_power_key as /devices/virtual/input/input1
PMIC powerkey probe
egalax_ts 2-0004: egalax_ts: failed to read firmware version
egalax_ts: probe of 2-0004 failed with error -5
p1003_fwv33 2-0041: couldn't read panel infomation.
p1003_fwv33: probe of 2-0041 failed with error -5
DA9052 TSI Device Driver, v1.0
mxc_rtc mxc_rtc.0: rtc core: registered mxc_rtc as rtc0
pmic rtc probe start
pmic_rtc mc34708_rtc.1: rtc core: registered mc34708_rtc as rtc1
pmic rtc probe succeed
i2c /dev entries driver
IR NEC protocol handler initialized
IR RC5(x) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
Linux video capture interface: v2.00
mxc_v4l2_output mxc_v4l2_output.0: Registered device video0
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
APM Battery Driver
check mma8450 chip ID
mma8450 0-001c: build time Oct 16 2012 12:23:15
input: mma8450 as /devices/virtual/input/input2
add mma8450 i2c driver
MXC WatchDog Driver 2.0
MXC Watchdog # 0 Timer: initial timeout 60 sec
Bluetooth: Virtual HCI driver ver 1.3
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCIATH3K protocol initialized
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
PMIC ADC start probe
VPU initialized
mxc_asrc registered
gpu mmu enabled
mxsdhci: MXC Secure Digital Host Controller Interface driver
mxsdhci: MXC SDHCI Controller Driver.
mmc0: SDHCI detect irq 0 irq 1 INTERNAL DMA
mxsdhci: MXC SDHCI Controller Driver.
mmc1: SDHCI detect irq 203 irq 3 INTERNAL DMA
Registered led device: pmic_ledsr
Registered led device: pmic_ledsg
Registered led device: pmic_ledsb
Registered led device: USR
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Cirrus Logic CS42888 ALSA SoC Codec Driver
sgtl5000-i2c 1-000a: SGTL5000 revision 17
mxc_spdif mxc_spdif.0: MXC SPDIF Audio Transmitter
No device for codec mxc spdif
No device for DAI mxc spdif
No device for DAI imx-ssi-1-0
No device for DAI imx-ssi-1-1
No device for DAI imx-ssi-2-0
No device for DAI imx-ssi-2-1
No device for DAI imx-spdif-dai
DMA Sound Buffer Allocated: Playback UseIram=1 ext_ram=0
buf->addr=f8016000 buf->area=e0856000 size=24576
DMA Sound Buffer Allocated: Capture  UseIram=1 ext_ram=1
buf->addr=cf4e8000 buf->area=f98ad000 size=24576
asoc: SGTL5000 <-> imx-ssi-2-0 mapping ok
DMA Sound Buffer Allocated: Playback UseIram=1 ext_ram=1
buf->addr=cf538000 buf->area=f98b3000 size=24576
asoc: mxc spdif <-> imx-spdif-dai mapping ok
ALSA device list:
  #0: imx-3stack (SGTL5000)
  #1: imx-3stack-spdif (mxc spdif)
TCP cubic registered
NET: Registered protocol family 17
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
Bluetooth: L2CAP ver 2.14
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO (Voice Link) ver 0.6
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
registered taskstats version 1
input: mxc_ts as /devices/virtual/input/input3
mxc input touchscreen loaded
mxc_rtc mxc_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
Waiting for root device /dev/mmcblk0p2...
mmc0: new SD card at address 5bff
mmcblk0: mmc0:5bff SD01G 982 MiB
 mmcblk0: p1 p2
EXT3-fs: barriers not enabled
ehci_fsl_bus_suspend, DR
ehci_fsl_bus_suspend, Host 1
kjournald starting.  Commit interval 5 seconds
EXT3-fs (mmcblk0p2): using internal journal
EXT3-fs (mmcblk0p2): recovery complete
EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) on device 179:2.
devtmpfs: mounted
Freeing init memory: 152K
<30>udevd[1291]: starting version 173
eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=0:00, irq=-1)
root@imx53qsb:~#

Does anybody have any clue about how to improve this latency test?

Best regards,

Flavio

-- 
Flavio de Castro Alves Filho

[email protected]
www.linuxembarcado.com
Twitter: http://twitter.com/#!/fraviofii
LinkedIn profile: www.linkedin.com/in/flaviocastroalves

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to