[HD2 Android NAND Development] curiousGeorge:
I'd be glad to do just that.

Description of my tests.

General use: tested headset, G-sensor calibration, wifi, bluetooth receive, mms transmission. Standby power draw is measured over a period of 30 minutes after a test call was placed to my google voice account; the most often seen range is reported (the rare 1mA draw in MDJ's kernel and the rare 4mA draw in Rafpigna v1.7 therefore don't qualify). Idle draw is the last reading observed at the end of the settling period and represents the phone's power draw with backlight on at 60% at 998Mhz (Interactive governor, the default for all tested kernels). Data could not be tested because I do not have a data plan.

Benchmarks: All kernels were allowed a 5 minute settling period after installation and second reboot. The benchmark Quardrant standard edition (up-to-date) was run 10 times at 1536Mhz (performance governor), and the average of the last 5 runs were recorded under "Benchmark" below.

Responsiveness: A group of tests was run for each kernel, allowing for the same 5 minute settling after the second reboot subsequent to kernel installation. Following this, I pinched to zoom out, tapped to zoom into my app screen (just a desktop with tons of apps), and loaded the first 6 apps, after which I pulled down the top Android bar and clicked the first app I loaded (Messages). The minimum number of seconds it took for this process to complete was measured on a stopwatch with accuracy of +- 1s. Also, qualitative impressions are given.

MDJ's 10.4OC: default kernel.

General: Headset buttons do not work, G-sensor calibration is glitchy (facedown required), there are some small graphical glitches and flickers in neocore. Standby power draw settles to 2-4mA after 2 minutes (rank #2-3), but there are periods of 60mA drain when the phone is updating location information using available wifi networks (rank #4). Idle draw: 132mA (rank #2).

Responsiveness: 39s (rank #3); feels relatively snappy.

Benchmark: 1535 (rank #2)

gpc#215: excellent alternative kernel; now used in dandiest's DHD build by default.

General: Headset buttons work. G-sensor calibration is somewhat glitchy, no graphical glitches in neocore. Standby power draw settles to 2-5mA within seconds of standby (rank #2-3), and ramps up to 30mA when updating location information via available networks (rank #2-3). Idle draw: 204mA (rank #3).

Responsiveness: 37s (rank #2). Feels quite snappy but experiences momentary pauses during periods of high I/O (Locations app).

Benchmark: 1502 (rank #3)

Rafpigna v1.6: alternative kernel (not in first post)

General: Headset buttons work. G-sensor calibration perfect, no graphical glitches in neocore. Standby power draw settles to 3-6mA within 3 minutes of standby (rank #4), and ramps up to 30mA when updating location information via wifi (rank #2-3). Idle draw: 230mA (rank #4).

Responsiveness: 51s (rank #4); feels very sluggish. Long pauses to open some apps, scrolling and zooming is noticeably choppy.

Benchmark: 1445 (rank #4)

Rafpigna v1.7: excellent alternative kernel

General: Headset buttons work. G-sensor calibration perfect, no graphical glitches in neocore. Standby power draw settles to 1-3mA within seconds (rank #1), ramps up to 21mA (rank #1) when updating location information via wifi. Idle draw: 127mA (rank #1).

Responsiveness: 34s (rank #1). Feels relatively snappy (similar to m-deejay), but apparently even waiting times are also lower. Perhaps this is BFQ at work.

Benchmark: 1620 (rank #1)

tytung r2: venerable old kernel

Not tested. Pros include extended battery support and large amounts of testing. Cons include a number of known glitches that have long since been fixed in GIT. Based on hearsay, it could never actually beat m-deejay's kernel definitively at anything. Of course, that's a somewhat unfair claim of me to make since I have not tested it and have no plans to do so.

Raidroid (Jan 11): tweaked older kernel

Power drain is similar to gpc#215. Suffers from G-sensor calibration issue. Responsiveness is very good, similar to Rapigna v1.7. No overclocking, so benchmark maxes out around 1385 (the lowest). There is nothing particularly special about this kernel, it seems, and there is no reason to use it over up-to-date, fully featured alternatives.

In conclusion, to my surprise, gpc's fantastic kernel seems to have been beaten by Rafpigna v1.7, even though Rafpigna v1.6 was outrageously bad. I'd assign them the following final ranking:

Rafpigna v1.7 (rank #1) > gpc#215 > MDJ's 10.4OC > Rafpigna v1.6 (rank #4).

I'd speculate that tytung's would roughly tie with MDJ's (perhaps MDJ's would have better performance but more glitches, though I suspect tytung's also suffers from the G-sensor issue). linux_on_wince_htc (vanilla) would also tie MDJ's but obviously score lower on benchmarks (no overclocking). Raidroid Jan 11 approximately ties with gpc#215, but without the additional features, up-to-date changes, ability to overclock, etc that gpc#215 provides.

I've been using the fantastic gpc#215 and its predecessors for a while now, and I've found them quite tough to beat. They are a solid bunch of full-featured, predictable kernels that perform well under a variety of scenarios. From my tests, it appears Rafpigna v1.7 beats it in a variety of ways, easily stealing the #1 spot in practically all quantitative areas. Since I have little experience with this kernel outside of these [admittedly extensive] tests, it would be helpful if someone could try data and measure connection speeds and drop rates. If it passes this test, I would easily suggest Rafpigna v1.7 as the default kernel. Otherwise, or in lack of difinitive testing, the safe choice for the majority is gpc#215. For what it's worth, gpc#215 also comes without the controversial BFQ scheduler patch, so it may be more reliable for this reason as well. All of this is mere speculation, however, and I'm going to try Rafpigna v1.7 full-time now.