|
|
||||
Re: Guide to changing your pagepool
Quote:
with vzw you have to be careful with ram use so its a bit trickier. I think you are on the right track.. you will just have to play with it and see whats best for you. |
This post has been thanked 1 times. |
|
||||
Re: Guide to changing your pagepool
GREAT WRITE-UP/ GUIDE. The only thing it is missing is how you can check your PP once you modified it and loaded it onto the phone.
![]()
__________________
i930, Apache, Titan, Touch Diamond, Touch Pro, Touch Pro 2, HTC EVO 4G, Samsung Galaxy S II, Samsung Galaxy S III, Samsung Galaxy S IV.
|
|
||||
Re: Guide to changing your pagepool
I think the issue is with the definition of static vs. dynamic pagepool, and the specific directions how to change the pagepool and to what and why. My particular point of clarification of misinformation was that you can set a "dynamic" pagepool of size xxx. There is no such option. You can either set a static pagepool size of xxx or set a dynamic page pool. Static means the PP is xxx. Dynamic means the PP size is whatever WM6.1 thinks it should be without regard to how much free ram you may need (or have).
Below is an exerpt from the stock Verizon WM6.1 ROM NK.EXE module, disassembled into ARM instructions, referencing the data structure for setting the page pool. The stock Sprint ROM will have a similar sequence but likely at a different address and definitely with different pagepool sizes. Custom ROMs will also have either different sizes, or will replace the last STR instruction with MOV R0, R0 (effectively a NOP). I've added everything after a semicolon as commentary, everything to the left of ; is pure ARM code disassembly so there is no subjectivity in interpreting the code. The code basically checks something, and based on whatever that something is determines if it shoudl set a static 12MB or 6MB pagepool. Whatever it checks results in it deciding on a 6MB pagepool for my device stock. The patch I recommend sets xxx MB regardless of the outcome of this check. 0005a06c: e59f3758 ldr r3,#0x5a7cc ; = #0xba0810c0 ; Load R3 with 0xba0810c0 0005a070: e59f0750 ldr r0,#0x5a7c8 ; = #0x80006b90 ; Unrelated register load, might be used in called sub 0005a074: e5933000 ldr r3,[r3,#0] ; Load R3 with data at address 0xba0810c0 + 0x00 0005a078: e3530c01 cmp r3,#0x100 ; Compare R3 with value of 0x100 0005a07c: e59f3740 ldr r3,#0x5a7c4 ; = #0x803d6350 ; Load R3 with 0x803d6350 (pointer to PP size constant) 0005a080: 03a01503 moveq r1,#0xc00000 ; If R3 compare was equal, load R1 with value xC00000 (12MB PP size) 0005a084: 13a01606 movne r1,#0x600000 ; If R3 compare was not equal, load R1 with value 0x600000 (6MB PP size) 0005a088: e5831000 str r1,[r3,#0] ; Store R1 at address 0x803D6350 (location of PP size)
__________________
ROM: WM6.5 nk.exe (Da_G), sys 23518 (Da_G), VZW OEM pack (scrosler)
Apps: Manila 2.1 (yozgatag), Leo dialer (pyrorob) |
|
||||
Re: Guide to changing your pagepool
Quote:
|
|
||||
Re: Guide to changing your pagepool
Where'd that definition of dynamic come from? I can envision several strategies for dynamic beyond that one.
__________________
Grammar: The difference between knowing your shit and knowing you're shit.
|
![]() |
|
|
|