Difference between revisions of "Application:SBromwichKernel"

From WebOS Internals
Jump to navigation Jump to search
Line 2: Line 2:
  
 
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).
 
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).
 +
 +
= 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") =
 
= Patches applied for 1.4.1-25 ("adric") =

Revision as of 18:11, 10 May 2010

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).

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

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
# Set governor
echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Set min frequency
echo 250000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
# Set max frequency
echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
# Set io scheduler to anticipatory
echo anticipatory > /sys/block/mmcblk0/queue/scheduler
# Powertop Suggestion: increase the VM dirty writeback time from 5.00 to 15
# seconds. 0.50s works better on flash as it has slow writes. Needs more testing.
echo 50 > /proc/sys/vm/dirty_writeback_centisecs
# Use YeaH TCP as it's fairer over wireless
echo yeah >  /proc/sys/net/ipv4/tcp_congestion_control
# Don't cache route metrics since we're mobile
echo 1 > /proc/sys/net/ipv4/tcp_no_metrics_save
# Ramp up the tx/rx network buffers in case we get bursty
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
# 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.