Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751840AbdI2HiA (ORCPT ); Fri, 29 Sep 2017 03:38:00 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:37565 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750847AbdI2Hh7 (ORCPT ); Fri, 29 Sep 2017 03:37:59 -0400 X-Google-Smtp-Source: AOwi7QAiDG8DckfeQRSHkod+dBGN2HyOYctticdsenyMhc5eK5mVHhL0baQuwS6ICZDsHTiwbmH1Xg== Date: Fri, 29 Sep 2017 09:37:55 +0200 From: Ingo Molnar To: Masami Hiramatsu Cc: mingo@redhat.com, x86@kernel.org, Steven Rostedt , linux-kernel@vger.kernel.org, Peter Zijlstra , Ananth N Mavinakayanahalli , Thomas Gleixner , "H . Peter Anvin" , "Paul E . McKenney" , Alexei Starovoitov , Alexei Starovoitov Subject: Re: [PATCH -tip v3 7/7] kprobes: Use synchronize_rcu_tasks() for optprobe with CONFIG_PREEMPT Message-ID: <20170929073755.ypjz6cidn7aiyxbq@gmail.com> References: <150581509713.32348.1905525476438163954.stgit@devbox> <150581537997.32348.14125457458719053753.stgit@devbox> <20170928072220.iv5subwl4u4zcqcp@gmail.com> <20170929002938.64cb852d6d921ec013d7f052@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170929002938.64cb852d6d921ec013d7f052@kernel.org> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1047 Lines: 37 * Masami Hiramatsu wrote: > On Thu, 28 Sep 2017 09:22:20 +0200 > Ingo Molnar wrote: > > > > > * Masami Hiramatsu wrote: > > > > > To enable jump optimized probe with CONFIG_PREEMPT, use > > > synchronize_rcu_tasks() to wait for all tasks preempted > > > on trampoline code back on track. > > > > This sentence does not parse. It's missing a verb, but I'm not sure. > > Hmm, how about this? > > Use synchthnize_rcu_tasks() to wait for all tasks preempted > on trampoline code back on track so that jump optimized probe > can be enabled with CONFIG_PREEMPT. What's "synchthnize"? ... More seriously, I still don't understand it. What is 'back on track'? Do you mean to say: We want to wait for all potentially preempted kprobes trampoline execution to have completed. This guarantees that any freed trampoline memory is not in use by any task in the system anymore. synchronize_rcu_tasks() gives such a guarantee, so use it. or something else? Thanks, Ingo