[PATCH v2 4/6] ARM: mm: LPAE: Correct virt_to_phys patching for 64 bit physical addresses
From: Santosh Shilimkar <hidden>
Date: 2013-08-09 19:37:12
Russell, On Saturday 03 August 2013 03:15 PM, Santosh Shilimkar wrote:
On Saturday 03 August 2013 10:09 AM, Russell King - ARM Linux wrote:quoted
On Sat, Aug 03, 2013 at 03:05:44PM +0100, Russell King - ARM Linux wrote:quoted
On Sat, Aug 03, 2013 at 06:17:29PM +0530, Sricharan R wrote:quoted
I started with this kind of augmenting with the immediate operand while starting V2. But the problem was, we do the runtime patching twice.It might be much better to do this only once, and instead of having the early code overwrite the page table in use, create a new page table with all the correct page table entries in and switch to that.The twice patching approach was taken obviously from the last discussion where you suggested to avoid too many changes to the existing patching code on Cyril's proposal. And the idea was obvious to delay the patching as late as machine code initialization so that it easy to patch and maintain.quoted
Note: we still need to do a certain amount of modification of the existing page table so that we _can_ perform such a switch on all our CPUs - that is, ensuring that the region for flushing the CPU caches on processors which need it is properly mapped.We probably need some more guidance on this approach. Last attempt was more or less removing the early patching code and operating directly on pv_offset variable to start with. And then in late code patching the stub itself were built to operate on pv_offsets. You didn't like that approach so to ensure that we follow your idea properly some more explanation would help.
Considering the $subject patch is now more or less sorted out, I would like to hear on your idea about one time patching. Thanks Regards, Santosh