Results 1 to 11 of 11
  1.    #1  
    The default kernel has a lot of debugging enabled; I have, with the kind help of the #webos-internals crew, managed to recompile with most of it disabled and a TCP scheduler that is more optimised for the radio link. It boots using the method at Research Pre Boot Process - WebOS Internals and everything I have tested so far (phone, wifi, usb, etc) seems to work.

    I have put the kernel on my website at http://www.fop.ns.ca/pre/uImage.nodebug for anyone who wants to experiment. The ramdisk method described on the wiki is a one-shot deal - hard reboot the phone and it will be back to the default Palm kernel (and major kudos to the Palm guys for implementing this this way).

    Cheers, Steve
  2. #2  
    I imagine this is not compatible with the 800Mhz, 720Mhz, ect. patches, but have you noticed any improvements yourself?
  3.    #3  
    Results from benchmarking show this kernel is marginally faster for most tests in Byte's nbench, but I suspect they are within the margin of error.

    Non-debug custom kernel:

    palm-webos-device /opt # nbench

    BYTEmark* Native Mode Benchmark ver. 2 (10/95)
    Index-split by Andrew D. Balsa (11/97)
    Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

    TEST : Iterations/sec. : Old Index : New Index
    : : Pentium 90* : AMD K6/233*
    --------------------:------------------:-------------:------------
    NUMERIC SORT : 319.8 : 8.20 : 2.69
    STRING SORT : 43.268 : 19.33 : 2.99
    BITFIELD : 1.1172e+08 : 19.16 : 4.00
    FP EMULATION : 84.446 : 40.52 : 9.35
    FOURIER : 327.19 : 0.37 : 0.21
    ASSIGNMENT : 5.1121 : 19.45 : 5.05
    IDEA : 678.56 : 10.38 : 3.08
    HUFFMAN : 461.77 : 12.80 : 4.09
    NEURAL NET : 0.50539 : 0.81 : 0.34
    LU DECOMPOSITION : 15.427 : 0.80 : 0.58
    ==========================ORIGINAL BYTEMARK RESULTS==========================
    INTEGER INDEX : 16.394
    FLOATING-POINT INDEX: 0.623
    Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
    ==============================LINUX DATA BELOW===============================
    CPU :
    L2 Cache :
    OS : Linux 2.6.24-palm-joplin-3430
    C compiler :
    /home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-gcc
    libc : static
    MEMORY INDEX : 3.924
    INTEGER INDEX : 4.221
    FLOATING-POINT INDEX: 0.345
    Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
    * Trademarks are property of their respective holder.
    palm-webos-device /opt #

    Stock kernel:

    palm-webos-device / # nbench

    BYTEmark* Native Mode Benchmark ver. 2 (10/95)
    Index-split by Andrew D. Balsa (11/97)
    Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

    TEST : Iterations/sec. : Old Index : New Index
    : : Pentium 90* : AMD K6/233*
    --------------------:------------------:-------------:------------
    NUMERIC SORT : 319.88 : 8.20 : 2.69
    STRING SORT : 42.254 : 18.88 : 2.92
    BITFIELD : 1.1082e+08 : 19.01 : 3.97
    FP EMULATION : 83.68 : 40.15 : 9.27
    FOURIER : 327.06 : 0.37 : 0.21
    ASSIGNMENT : 5.1121 : 19.45 : 5.05
    IDEA : 677.83 : 10.37 : 3.08
    HUFFMAN : 461.05 : 12.79 : 4.08
    NEURAL NET : 0.50573 : 0.81 : 0.34
    LU DECOMPOSITION : 15.397 : 0.80 : 0.58
    ==========================ORIGINAL BYTEMARK RESULTS==========================
    INTEGER INDEX : 16.293
    FLOATING-POINT INDEX: 0.622
    Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
    ==============================LINUX DATA BELOW===============================
    CPU :
    L2 Cache :
    OS : Linux 2.6.24-palm-joplin-3430
    C compiler :
    /home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-gcc
    libc : static
    MEMORY INDEX : 3.883
    INTEGER INDEX : 4.209
    FLOATING-POINT INDEX: 0.345
    Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
    * Trademarks are property of their respective holder.
    palm-webos-device / #

    Cheers, Steve
  4.    #4  
    Quote Originally Posted by alex.dobeck View Post
    I imagine this is not compatible with the 800Mhz, 720Mhz, ect. patches, but have you noticed any improvements yourself?
    Thanks for calling me out on that one Alex. This is with the 800MHz patch applied:

    palm-webos-device cpufreq # cat scaling_available_frequencies
    800000 720000 600000 550000 500000 250000 125000
    palm-webos-device cpufreq #

    And with the following /sys settings:

    # Set min frequency
    echo 125000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    # Set max frequency
    echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

    # Set powersave bias to 5
    echo 5 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/powersave_bias

    # Set up_threshold to 50
    echo 50 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold

    # Set up_threshold to 20000
    echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate

    Cheers, Steve
  5. #5  
    This is important work. I hope moving forward it's all documented and saved in a common area for open development use. There have been major leaps forward in kernel development recently from a few main developers, and I hope there is more to come
    Bringing you the first video recorder (Precorder), the first SDL application/game (DOOM), the first "make my magicjack/corporate voicemail play on my webos phone thingy" (gsm codec package), and now, webos's first opensource media recorder (voice and stream!) -> zcorder
  6.    #6  
    Quote Originally Posted by Prenosicator View Post
    This is important work. I hope moving forward it's all documented and saved in a common area for open development use. There have been major leaps forward in kernel development recently from a few main developers, and I hope there is more to come
    I compiled my kernel with a mixture of information from the webos-internals wiki and the kind help of developers and other hackers on #webos-internals. I have updated the wiki as appropriate where I have found unclear/typo'd information.

    Cheers, Steve
  7. #7  
    Thanks for your work on this Steve. Any advances to free up CPU cycles and make webOS leaner and meaner is very welcome!
  8. #8  
    Thanks for doing this. But are you saying there's no real gain in speed from turning off debugging?
  9.    #9  
    I'm saying the gain is marginal, and quite possibly within the margin of error. There is a markedly better gain to be made by disabling syslogging.

    Cheers, Steve
  10. Daemon's Avatar
    Posts
    796 Posts
    Global Posts
    809 Global Posts
    #10  
    Wouldn't the real gain be in a bit less memory usage, not carrying
    all the debugging overhead around in the call stack?

    BTW, the scaling settings above locked my Pre the moment I woke it up.

    ian
  11.    #11  
    The aims are (a) reduced memory usage and (b) less CPU time burnt on the debugging calls, particularly on the kernel fastpath.

    The settings I quoted were tuned specifically to my phone and usage patterns and the kernel I compiled. I have noted in posts passim that what I have posted is a starting point, not an end point in itself. In particular, latency sensitive users such as music and video players will not find their happy place with these settings.

    Cheers, Steve

Posting Permissions