Re: Re: [PATCH i386] Live Patching Function on 2.6.11.7

Takashi Ikebe <[email protected]> Tue, 10 May 2005 10:19:55 +0900
Newsgroups gmane.linux.kernel.carrier-grade
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------010403060600020408010201
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hello, Andrew
Sorry for late reply.
I don't know montavista's implementation, but it seems some 
modifications to legacy application are needed(as long as it is 
implemented as library...).
And there is no open-sourced implementation yet.
I think only the way to realize user space implementation without zero 
modification on legacy application is using ptrace function.

We tested ptrace PEEKDATA performance.
The tested environment is workstation like below.
CPU Xeon 2.8GHz x2,
Memory 1GB,
Kernel 2.6.9

The results are below;
--------------------------------------------------------------------------------
memory-size(byte)	Time-to-write(micro-seconds)
1	9
10	23
50	83
100	167
500	754
1000	1475
5000	7259
10000	14592
50000	73070
100000	146037
500000	727189
1000000	1452708

You can also see liner scaling graph.
If the patch module is almost 1MB, then it takes almost 1.5second...
High-throughput ptrace PEEKDATA seems very reasonable(at least for us).


Corey Minyard wrote:
> Andrew, you are correct.  This can be implemented as a userspace 
> library.  It's not easy, but it can be done.
> 
> There are a few things that cannot be handled with hostile 
> applications.  For instance, if a thread turns off all signals, it 
> cannot be stopped and thus cannot be patched.  However, there are 
> important operations that need to be done that are extremely hard to do 
> in a ptrace environment and are easy with a library.  I doubt the 
> current implementation from NTT has these operations, but they are 
> important for patching.
> 
> I know this because Montavista delivers a product (which I initially 
> wrote) that does exactly this.  It is a set of libraries that the user 
> can link in or can be preloaded on an existing application.  We have 
> many customers using this tool.
> 
> I haven't done any tests, but the library should actually be faster than 
> the ptrace method because of the reduced mm switching.  I don't know why 
> it would be any slower.  Plus, the actual application of the patch is 
> the easy part of this operation; it's all the other stuff you have to do 
> that makes this so hard.
> 
> I'm not sure I agree with the level of hostility this received.  This is 
> an important tool for improving reliability.  I try to stay out of frays 
> like this, perhaps to a fault.
> 
> -Corey
> 
> Andrew Morton wrote:
> 
>> Takashi Ikebe <[email protected]> wrote:
>>  
>>
>>> This patch add function called "Live patching" which is defined on
>>> OSDL's carrier grade linux requiremnt definition to linux 2.6.11.7 
>>> kernel.
>>>   
>>
>>
>> I must say that I'd agree with the hostile reception which this work
>> received on the linux-kernel list.
>>
>> It needs to be exhaustively demonstrated that this functionality 
>> cannot be
>> provided in userspace.  If it can be implemented in userspace then it 
>> would
>> be via a library and would require basically zero modifications to legacy
>> applications.
>>
>> If PTRACE_PEEKTEXT/POKETEXT ends up being a limiting factor then we would
>> certainly support extensions to the ptrace function which enable higher
>> throughput - presumably with scatter/gather lists.
>>
>> To repeat: I think it _can_ be done in userspace - if the 
>> implementation is
>> sufficiently good then the limiting factor would be memory bandwidth.
>>
>> We've seen assertions that a userspace approach would be too slow, but to
>> get support for a patch like this, quite frankly, we'd need to see the
>> too-slow userspace implementation before we'd agree that kernel help is
>> needed.
>>
>>  
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> cgl_discussion mailing list
>> [email protected]
>> http://lists.osdl.org/mailman/listinfo/cgl_discussion
>>  
>>
> 


--------------010403060600020408010201
Content-Type: image/gif;
 name="peekdata.GIF"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="peekdata.GIF"

R0lGODlhCgLkAfcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A
/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAz
mQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDM
mQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMz
mTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPM
mTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYz
mWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbM
mWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkz
mZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnM
mZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswz
mcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszM
mczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8z
mf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/M
mf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAKAuQBAAj/AP8JHEiwoMGD
CBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2b
OHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnD++hQPEDqtWrWLNqtehP1T9/lGJtHUu2rNmm
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
--------------010403060600020408010201
Content-Type: text/plain; charset="iso-8859-1"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

_______________________________________________
cgl_discussion mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/cgl_discussion

--------------010403060600020408010201--