Application:SBromwichKernel

The sbromwich series of kernels are the kernels I run on my phone with all current webos-internals testing patches applied, plus my patches, plus my kernel configuration.

The kernels are currently available at http://ipkg.preware.org/feeds/webos-kernels/testing/1.4.1.1/ and can be added using any standard package manager in the standard format (deducing this is left as an exercise for the reader).

 This kernel is INTENDED FOR ALPHA TESTING ONLY. If you are looking for information on alternate stable kernels, Application:UberKernel

= Patches applied for 1.4.1-75 =


 * Pulled prcm patches to help test if this is causing an issue for warthog

= Patches applied for 1.4.1-63 =


 * defconfig patches tweaked to avoid patch collision with screenstate governor settings
 * Makefile patched to use cs2010q1 gcc compiler from CodeSourcery

= Patches applied for 1.4.1-61 ("tebbo") =


 * Tweaked prcm patches to extend battery life.

= Patches applied for 1.4.1-28 ("nt4cats") =


 * Applied patches to remove debug settings for:
 * board-sirloin-headset-detect.c.diff
 * omap_fb.c.diff
 * omap_misc_hsuart.c
 * pm_cpuidle.c.diff

This may reduce the "high load on wakeup" that some people are seeing.

= Patches applied for 1.4.1-26 ("yoda") =


 * wfi instruction re-enabled after several sources confirmed it did not hinder
 * Tweaked timeouts for prcm bitbanging, particularly with DOM_PER to see if that reduces battery drain at the expense of (possibly) more hangs coming out of suspend.

= Patches applied for 1.4.1-25 ("adric") =


 * wfi instruction on prcm fail removed to validate if this is a regression causing battery drain.

= Patches applied for 1.4.1-24 ("jangofett") =


 * Reduce number of scheduling calls made to try to reduce battery drain. This may have an adverse affect on wake from suspend.

= Patches applied for 1.4.1-23 ("bobafett") =


 * Debug settings removed from default kernel build.
 * Compile kernel with explicit cortex-a8 tuning flags for gcc.
 * Tweak prcm power manager to more explicitly wait for power set calls to return, remove debug cruft, and add Wait For Interrupt instruction if a prcm setting attempt fails.
 * Enable preempt kernel.

= Known problems =


 * Pre can take some extra time to respond to certain activities, especially when waking up; lags of up to 2 seconds can be experienced on wakeup. The alternative is a reboot, which will take even longer.

= Improvements =


 * User interactivity latency should be lower (time to respond to keypresses, etc).
 * Fewer powerd wakeups allowing the system to sleep longer.

= Warnings =


 * My patch makes the kernel boot at 800MHz. Run this kernel at your own risk. Not compliant with point 6 of http://forums.precentral.net/webos-internals/241355-next-generation-kernel-development-packaging.html.
 * anticipatory io scheduler recommended.
 * Install SmartReflex patches at your own risk. SmartReflex is not expected to work.
 * Some users have reported increased battery usage when running this kernel.

= Settings used with this kernel =

I use the following event.d script:

 description "Local tuning modes" start on stopped finish stop on runlevel [!2] console none script echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo 250000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq echo anticipatory > /sys/block/mmcblk0/queue/scheduler echo 50 > /proc/sys/vm/dirty_writeback_centisecs echo yeah > /proc/sys/net/ipv4/tcp_congestion_control echo 1 > /proc/sys/net/ipv4/tcp_no_metrics_save echo 1048576 > /proc/sys/net/core/rmem_max echo 1048576 > /proc/sys/net/core/wmem_max echo 3000 > /proc/sys/net/core/netdev_max_backlog nohup /usr/local/bin/pt.pl > /dev/null 2>&1 & /usr/sbin/iptables -D INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT > /dev/null 2>&1 /usr/sbin/iptables -I INPUT -i eth0 -p tcp --sport 5222 -s 205.140.203.0/24 -j ACCEPT echo 5 > /proc/sys/vm/laptop_mode end script 
 * 1) Set governor
 * 1) Set min frequency
 * 1) Set max frequency
 * 1) Set io scheduler to anticipatory
 * 1) Powertop Suggestion: increase the VM dirty writeback time from 5.00 to 15
 * 2) seconds. 0.50s works better on flash as it has slow writes. Needs more testing.
 * 1) Use YeaH TCP as it's fairer over wireless
 * 1) Don't cache route metrics since we're mobile
 * 1) Ramp up the tx/rx network buffers in case we get bursty
 * 1) end of file

In addition, I am using my naive perl scheduler at http://www.fop.ns.ca/pre/pt/pt.pl to manage the CPU frequency.