Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1282870

Re: [PATCH] arm64: ftrace: stop using kstop_machine to enable/disable tracing

From libin <huawei.libin@huawei.com>
Newsgroups linux.kernel
Subject Re: [PATCH] arm64: ftrace: stop using kstop_machine to enable/disable tracing
Date 2015-12-03 10:50 +0100
Message-ID <qByGu-3cm-41@gated-at.bofh.it> (permalink)
References <qzIAi-5ZF-11@gated-at.bofh.it> <qBeRs-79R-25@gated-at.bofh.it> <qBfua-7Ey-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw



on 2015/12/2 21:16, Will Deacon wrote:
> On Wed, Dec 02, 2015 at 12:36:54PM +0000, Will Deacon wrote:
>> On Sat, Nov 28, 2015 at 03:50:09PM +0800, Li Bin wrote:
>>> On arm64, kstop_machine which is hugely disruptive to a running
>>> system is not needed to convert nops to ftrace calls or back,
>>> because that modifed code is a single 32bit instructions which
>>> is impossible to cross cache (or page) boundaries, and the used str
>>> instruction is single-copy atomic.
>> This commit message is misleading, since the single-copy atomicity
>> guarantees don't apply to the instruction-side. Instead, the architecture
>> calls out a handful of safe instructions in "Concurrent modification and
>> execution of instructions".
>>
>> Now, those safe instructions *do* include NOP, B and BL, so that should
>> be sufficient for ftrace provided that we don't patch condition codes
>> (and I don't think we do).
> Thinking about this some more, you also need to fix the validate=1 case
> in ftrace_modify_code so that it can run outside of stop_machine. We
> currently rely on that to deal with concurrent modifications (e.g.
> module unloading).

I'm not sure it is really a problem, but on x86, which using breakpoints method,
add_break() that run outside of stop_machine also has similar code.

static int add_break(unsigned long ip, const char *old)
{
        unsigned char replaced[MCOUNT_INSN_SIZE];
        unsigned char brk = BREAKPOINT_INSTRUCTION;

        if (probe_kernel_read(replaced, (void *)ip, MCOUNT_INSN_SIZE))
                return -EFAULT;

        /* Make sure it is what we expect it to be */
        if (memcmp(replaced, old, MCOUNT_INSN_SIZE) != 0)
                return -EINVAL;

        return ftrace_write(ip, &brk, 1);
}

Or I misunderstand what you mean?

Thanks,
Li Bin

> Will
>
> .
>


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

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Will Deacon <will.deacon@arm.com> - 2015-12-02 13:40 +0100
  Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Will Deacon <will.deacon@arm.com> - 2015-12-02 14:20 +0100
    Re: [PATCH] arm64: ftrace: stop using kstop_machine to enable/disable  tracing libin <huawei.libin@huawei.com> - 2015-12-03 10:50 +0100
      Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Will Deacon <will.deacon@arm.com> - 2015-12-03 12:50 +0100
        Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Steven Rostedt <rostedt@goodmis.org> - 2015-12-03 16:10 +0100
  Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Steven Rostedt <rostedt@goodmis.org> - 2015-12-02 15:10 +0100
  Re: [PATCH] arm64: ftrace: stop using kstop_machine to enable/disable  tracing libin <huawei.libin@huawei.com> - 2015-12-03 10:30 +0100
    Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Will Deacon <will.deacon@arm.com> - 2015-12-03 10:40 +0100
      Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Will Deacon <will.deacon@arm.com> - 2015-12-03 16:10 +0100
        Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Steven Rostedt <rostedt@goodmis.org> - 2015-12-03 16:40 +0100
          Re: [PATCH] arm64: ftrace: stop using kstop_machine to enable/disable  tracing libin <huawei.libin@huawei.com> - 2015-12-04 02:10 +0100
      Re: [PATCH] arm64: ftrace: stop using kstop_machine to  enable/disable tracing Steven Rostedt <rostedt@goodmis.org> - 2015-12-03 16:10 +0100

csiph-web