Re: [PATCH][v4] uprobes/x86: emulate push insns for uprobe on x86

From: Oleg Nesterov
Date: Mon Nov 20 2017 - 11:41:53 EST


On 11/17, Yonghong Song wrote:
>
> On 11/17/17 9:25 AM, Oleg Nesterov wrote:
> >On 11/15, Yonghong Song wrote:
> >>
> >>v3 -> v4:
> >> . Revert most of v3 change as 32bit emulation is not really working
> >> on x86_64 platform as among other issues, function emulate_push_stack()
> >> needs to account for 32bit app on 64bit platform.
> >> A separate effort is ongoing to address this issue.
> >
> >Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
> >
> >
> >
> >Please test your patch with the fix below, in this particular case the
> >TIF_IA32 check should be fine. Although this is not what we really want,
> >we should probably use user_64bit_mode(regs) which checks ->cs. But this
> >needs more changes and doesn't solve other problems (get_unmapped_area)
> >so I still can't decide what should we do right now...
>
> I tested the below change with my patch. On x86_64, both 64bit and 32bit
> program can be uprobe emulated properly.

Good, so your patch is fine.

> On x86_32, however, there is a
> compilation error like below:

Yes, yes, when I said "in this particular case" I meant x86_64 system only.

Sorry for confusion, I asked you to test this additional change just to
ensure that we didn't miss something and your patch has no problems with
32bit tasks on 64bit system, except those we need to fix anyway.

Oleg.