Re: [PATCH][take2][2/2] kprobe: kprobe-booster against 2.6.16-rc5 for i386

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

 



Hi, Andrew

Andrew Morton wrote:
> Masami Hiramatsu <[email protected]> wrote:
>> Here is a patch of kprobe-booster for i386 arch against linux-2.6.16-rc5.
>>  The kprobe-booster patch is also under the influence of the NX-protection
>>  support patch. So, I fixed that.
>>
>>  Could you replace the previous patches with these patches?
> 
> I'd prefer not to.  Once a patch has been in -mm for this long I really
> prefer to not see wholesale replacements.  When people do this to me I
> usually turn their replacements into incremental patches so we can see what
> changed.  Which is useful.
> 
> Your first patch was identical to what I already have, so I dropped that.


Thank you for your advice. I will re-create an additional patch
against recent -mm tree.

> Your second patch made these changes:
> 
> --- devel/arch/i386/kernel/kprobes.c~kprobe-kprobe-booster-against-2616-rc5-for	2006-02-27 18:40:29.000000000 -0800
> +++ devel-akpm/arch/i386/kernel/kprobes.c	2006-02-27 18:40:57.000000000 -0800
> @@ -305,7 +305,7 @@ static int __kprobes kprobe_handler(stru
>  
>  	if (p->ainsn.boostable == 1 &&
>  #ifdef CONFIG_PREEMPT
> -	    !(pre_preempt_count) && /*
> +	    !(pre_preempt_count()) && /*
>  				       * This enables booster when the direct
>  				       * execution path aren't preempted.
>  				       */
> @@ -313,7 +313,7 @@ static int __kprobes kprobe_handler(stru
>  	    !p->post_handler && !p->break_handler ) {
>  		/* Boost up -- we can execute copied instructions directly */
>  		reset_current_kprobe();
> -		regs->eip = (unsigned long)&p->ainsn.insn;
> +		regs->eip = (unsigned long)p->ainsn.insn;
>  		preempt_enable_no_resched();
>  		return 1;
>  	}
> 
> The first hunk is surely wrong - pre_preempt_count is a local unsigned
> integer, not a function.

I'm sorry. It's my fault. The first hunk is just a degradation.

> And I'm not sure about the second hunk either - surely an `eip' should
> point at an instruction, not be assigned the value of an instruction?

This change is important. Because NX-protection support patch makes
the ainsn.insn a pointer instead of a data structure, so now (&p->ainsn.insn)
means just an address of the pointer -- not the instruction address.

> So I'll drop both patches.  If you have bugfixes, please make them relative
> to already-merged things.  Against most-recent -mm is best, as I do fix
> patches up, and other people send fixes which you might not have merged
> locally.  And please ensure that the changes compile and run with and
> without CONFIG_PREEMPT!

OK. I will get the latest -mm tree and test it.
And I will re-send the patch ASAP.

-- 
Masami HIRAMATSU
2nd Research Dept.
Hitachi, Ltd., Systems Development Laboratory
E-mail: [email protected]



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux