[PATCH 19/21] i386 Kprobes semaphore fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Prasanna S Panchamukhi wrote:

>On Wed, Nov 09, 2005 at 09:52:40AM -0800, Zachary Amsden wrote:
>  
>
>>Ingo Molnar wrote:
>>
>>    
>>
>>>* Zachary Amsden <zach@xxxxxxxxxx> wrote:
>>>
>>>
>>>
>>>      
>>>
>>>>>I believe user space kprobes are being worked on by some IBM India folks 
>>>>>yes.
>>>>>    
>>>>>
>>>>>          
>>>>>
>>>>I'm convinced this is pointless.  What does it buy you over a ptrace 
>>>>based debugger?  Why would you want extra code running in the kernel 
>>>>that can be done perfectly well in userspace?
>>>>  
>>>>
>>>>        
>>>>
>>>kprobes are not just for 'debuggers', they are also used for tracing and 
>>>other dynamic instrumentation in projects like systemtap. Ptrace is way 
>>>too slow and limited for things like that.
>>>
>>>
>>>      
>>>
>>Well, if there is a justification for it, that means we really should 
>>handle all the nasty EIP conversion cases due to segmentation and v8086 
>>mode in the kprobes code.  I was hoping that might not be the case.
>>
>>    
>>
>
>As Ingo mentioned above, Systemtap uses kprobes infrastructure to provide
>dynamic kernel instrumentation. Using which user can add lots of probes 
>easily, so we need to take care of this fast path.  
>
>Instead of calling convert_eip_to_linear() for all cases, you can
>just check if it is in kernel mode and calculate the address directly
>
>	if (kernel mode)
>                addr = regs->eip - sizeof(kprobe_opcode_t);
>        else
>                addr = convert_eip_to_linear(..);
>
>there by avoiding call to convert_eip_to_linear () for every kernel probes.
>
>As Andi mentioned user space probes support is in progress and 
>this address conversion will help in case of user space probes as well.
>

I like this better.  I have to rework that patch anyways, since it no 
longer applies cleanly.

Zach


[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux