• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root [KERNEL] MiRaGe - for HTC stock ICS ROM - 3.0.101 - 10222013

Is this still only hboot 1.57+ compatible? I flash back to my stock just to try the updates of this. I'd like to flash it on butters sense stockish rom using hboot 1.50.50
 
Is this still only hboot 1.57+ compatible? I flash back to my stock just to try the updates of this. I'd like to flash it on butters sense stockish rom using hboot 1.50.50

No. The kernel can work with any hboot. The package is an any-kernel-updater. It will just use the existing boot image that is compatible with the existing hboot. But the compatibility of the kernel is not guaranteed with other ROMs. It will most probably boot but there can be problems without stock ICS ROM.
 
I have done an extensive revision of msm_mpdecision. I have re-coded all of the key functions and removed quite a few others to reduce the overhead and increase efficiency. There were several redundant/dysfunctional features that are fixed or removed.
If you want to see the details of the changes please go to my repo and check the commits. Or you can check the code after revisions and before revisions following the links here.

The next step in my improvement plan is load calculation but I wanted to complete testing of the extensive changes before modifying the code further. I might change the name of the code after this final step to avoid confusing with msm_mpdecision.

Here is a test kernel with the revised code if you want to help with testing. Mpdecision is enabled by default with this kernel. If the feedback is positive we can keep it enabled from now on.

Due to heavy modifications I have done, kernel tuner will probably fail detecting this as mpdecision. If you want to disable mpdecision you can either flash the previous kernel version or use the following command.
Code:
echo "0" > /sys/module/msm_mpdecision/parameters/enabled
 
Just flashed. Running on butterz sense, hboot 1.50.50, no frills cpu control, with default kernel settings. Let ya know how it goes! :thumbup::beer:
 
I don't know what to say. It's basically everything I'm used to from your kernel. Great performance and battery, I don't really notice much difference coming from your official :thumbup:
 
I have updated the MiRaGe kernel with the following changes

- Linux 3.0.86 patch applied
- msm_mpdecision has been revised. I have recoded all of the main functions to reduce overhead and increase efficiency. It is now enabled by default. enable/disable is done with /sys/module/msm_mpdecision/parameters/enabled file by writing 1/0 respectively. I use ES File Explorer to do this.
- backported the latest rq_stats from CAF msm-3.4 kernel which is used to calculate the load averages by msm_mpdecision
- updated kernel/power code from CAF msm-jb_chocolate
- updated bcm4329 wifi driver from CAF msm-jb_chocolate
- updated bcmdhd wifi driver from CAF msm-jb_chocolate
- updated genlock code from CAF msm-jb_chocolate
- backported two important cpufreq updates to avoid possible deadlock due to race between cpu governor and mpdecision

Enjoy!
 
I did quite a few changes in the repo. If you want, I can post a test build with the latest changes.

okay, here is the test kernel with the following changes

- Compiled with the latest linaro 2013.07 gcc-4.8.2. It seems that the initial problems are resolved and kernel is stable so far for me.
- Removed unnecessary statistics from mpdecision to improve the efficiency further
- backported workqueue from Linux 3.6.11 to improve the latency of cpu
hotplug events. See my repo for details and the following link
https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/Hotplug#Workqueue
- added latest patches to interactive governor from Google AOSP 3.4 kernel
- added latest patches to row scheduler from CAF msm-3.4 kernel

The download link is below. Please post your feedback since this is a test kernel.
http://www.mediafire.com/download/qqkp999maeb4uuz/MiRaGe_shooter_test_kernel_864.zip
 
the test kernel froze on boot up for me on my Rom but the 07132013 build is working great. so its all good :)

I missed your post until now. Thanks for the report. Since this is the only boot problem report, can you to try flashing again in the recovery without wiping anything? This is just to eliminate any possible flashing problems. I will post another test kernel after this post. I would very much appreciate if you can also try it and let me know the result. If the problem persists, I will PM you a test kernel built with gcc 4.7.4 to find if gcc 4.8.2 is the culprit, of course if you are willing to try. Thanks!

Edit: i have already reverted the toolchain back to gcc 4.7.4. I strongly suspect gcc 4.8 is again causing these rare problems which happened when I tested previously. The test build below is with gcc 4.7. It would be very helpful if you can try and tell me if there are any problems. Thanks!
 
Here is the next test kernel before I post the next stable build on Sunday if the tests go well. I have completed the last step of my mpdecision overhaul project with this test kernel.

As I posted earlier, my final step of optimization was going to be with the load calculation of mpdecision. I only inserted a workqueue update to improve cpu hotplug latency before this step, which came with the previous test kernel.

The userspace mpdecision uses a special code called msm_rq_stats to access the load averages. The original purpose of msm_rq_stats is enabling userspace access to rq_stats and comes with the overhead of additional spin/mutex locks and sysfs facilities. However, kernel-based mpdecision has been still using this code to obtain cpu load averages while using a tiny fraction of the code. I have completely eliminated msm_rq_stats code and added a very simple rq_stats direct-access capability in msm_mpdecision. It seems to me that there is a noticeable improvement in the responsiveness of the kernel with the eliminated overhead. It would be great help if you can test and post your feedback.
http://www.mediafire.com/download/wbt5wzhvk4lwt5d/MiRaGe_shooter_test_kernel_873.zip
 
There is a new stable build of MiRaGe available in the OP with the following changes.

- backported workqueue from Linux 3.6.11 to improve the latency of cpu hotplug events.
- Removed unnecessary statistics from mpdecision to improve the efficiency further
- Implemented a simple direct rq_stats access in msm_mpdecision and eliminated msm_rq_stats completely to reduce the overhead in load average calculations
- added latest patches to interactive governor from Google AOSP 3.4 kernel
- added latest patches to row scheduler from CAF msm-3.4 kernel
- Linux 3.0.87 patch (will be released tomorrow, still rc1 as of today)

I already see a noticeable improvement in both responsiveness and battery life. There was one report by mobstergunz of freezing problem with the test build and it was again due to using gcc 4.8 based experimental Linaro toolchain. I have reverted back to stable gcc 4.7 based Linaro toolchain used with the previous builds.

See my repo for the details

A couple of remarks with this build.
- I feel that this kernel project is pretty much done now and I will switch to maintenance mode. There will be one last build next week (or when Linux 3.0.88 is released) to wrap up the project and mark the final release. There are no problem reports from users anymore which means that I need to find another project to annoy people. :D
- I will move to 3.4 kernel after the next final release and probably return to the JB ROM project I had left half-done some time ago.
- msm_mpdecision in MiRaGe kernel is now almost completely rewritten. Maybe it would have been better changing the name to something else to avoid confusion since there are already reports that kernel tuner apps are not recognizing it anymore. This is normal since it is not the same msm_mpdecision anymore. I haven't changed the name for two reasons: one - out of respect to the original developers, second - making it still possible to do a drop-in replacement for the other developers who might want to use it.

Enjoy!
 
Back
Top Bottom