Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2437985pxb; Tue, 23 Feb 2021 07:07:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJwgLvTM5lkmPbSnawjvzaweCmhn9Gqto6P+frnzW22llM54zm8u2KiX4iyKDmkw6F0xHVO5 X-Received: by 2002:a05:6402:50c8:: with SMTP id h8mr6134546edb.360.1614092861523; Tue, 23 Feb 2021 07:07:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614092861; cv=none; d=google.com; s=arc-20160816; b=DYvxKR+TKHne1mQTDgF+NN1XU/nNMqRXl5YV/ShK417oa12yOcgzGs2gwwWsZ9syLl njSTTAqN6oXOcQ1juvuAfB4A4LdFFHl7HcGbIzqz3L67TrxH24yfxEnYzxmA5h7fhIZ+ MDIEFgE1OdNPu24f4M5KaNpyYlx5gbz0nTloaVP/mwUzIHLTTgcnEjRNHuQJDnSWWxVn ibQdAIqPsYRmCD1ysKTcWssC5DshtOnfXP6M83M1iA7L/byuEK5UxcC3RIiw4nuT+HoV v6Lvo1PxlAHOVO2wtgOuQxMaqWinxSXlclHtvspNoNY+DnmWkLiIa9ybazaVFHuxuf0B Vb6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=Hp3qEo1mGTYNWoUMN5eqstUYboCeaha+fsI0VeFao8I=; b=AzhVRTT21LtnIkxFytXvXw9Jo+smWc2QkCbEyGrmL9bSPQ4vhTStnfkmPcfVYv2Hzw T3YTsOCZ8LPs5heNUWroWPnQxlk5tYgt7scyVbJH2rhQZ88IkzQFTbldWF7Bcf7njByz 4NG6ovIX+YGpumeNPliZzJo3Frkd8s44XiUc8FX4O9htrTg9TT5l8/5qsfLiTI2r5/2o QWa/g+n/CHK71M9r9fJh5gPul0kvOJoCGf233V+sq8nD7NcHbVNOoGIgiFKKHE4wr6M/ 002/ihDDRuYTKRUR0rPjKuI5XX0IzBP+tpnrsElnpAjDGSUPDl5sIOGFnBNEwo5o9a/R 54+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=NpoxNpI2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j3si7165878ejc.508.2021.02.23.07.07.09; Tue, 23 Feb 2021 07:07:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=NpoxNpI2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232834AbhBWPCh (ORCPT + 99 others); Tue, 23 Feb 2021 10:02:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232698AbhBWPCY (ORCPT ); Tue, 23 Feb 2021 10:02:24 -0500 Received: from mail-qk1-x733.google.com (mail-qk1-x733.google.com [IPv6:2607:f8b0:4864:20::733]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 94496C06178A for ; Tue, 23 Feb 2021 07:01:44 -0800 (PST) Received: by mail-qk1-x733.google.com with SMTP id m144so16325154qke.10 for ; Tue, 23 Feb 2021 07:01:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Hp3qEo1mGTYNWoUMN5eqstUYboCeaha+fsI0VeFao8I=; b=NpoxNpI2xc6id5NxW69KE4oQHURDwpHadhXC0xgwScEvzu6B3BYS65Ts2ipL2b5x5i 9qRzpx2cp0UuMcYS9wNZU99DI50I20Lzx28ST3d5Fy/tm1Jb39w/+yLFSNZFCj/jn/p2 PzofcMolX+u5QUpmMwyRWtWgWUs3YdEnUXpqHV/DloHT9TlmY/sY46fmBdMPZrqkRcne ruvrrRPv4mjFdUobX6w+4f+lJ2UyFGZTId6fyo2yNNQAfefhmP8iRRqQfhgm/54mrhCN nDJCdPLLxzzScamPVTLgEkOsmHLBb/Rmy3HUyrMfPmwd8k8zPPzuN24RhheyuowY/zUH HwKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Hp3qEo1mGTYNWoUMN5eqstUYboCeaha+fsI0VeFao8I=; b=Rwjpv+ePslO92VzZSAwRvooHB3MymPq3rqRRAZUrFtWTL4DpwirAQcswhhkNqJuOiF TH0pO2w16etSW/ZE4baICjjQoE9CorDGMt9yJBX+1rxLNIrfRb5sbuiBebX3dtujZu5W 9Dw5hZpbsrQGrYDthZZZQpi2LsLfcGrCHXMUVsSbzSrbEuusItRGSBlopXLBoJnwRHSI gNFFYVbiEm2u64VqqEcLbVXlYrT9KnoZ7m5rkCWCXhUNg3vphUll74tImDGGXNOXfos0 Dj+XyHlVbGzA+XCGqC6hTCpbMEv54AMT3zyLyy3juJfvpuWxgTrv/Ht/mw4BMez96f/b CgVg== X-Gm-Message-State: AOAM533Z97fUt/Yhuu8iNEu/Sm+lic7S9l8n59kwXO/6rIn4oe/3tXWn /H49GaBg6PVTc/3Hd08BDbzRwShLznw6HDEdOJ9HNg== X-Received: by 2002:a37:46cf:: with SMTP id t198mr26670036qka.265.1614092503361; Tue, 23 Feb 2021 07:01:43 -0800 (PST) MIME-Version: 1.0 References: <20210223143426.2412737-1-elver@google.com> <20210223143426.2412737-5-elver@google.com> In-Reply-To: <20210223143426.2412737-5-elver@google.com> From: Dmitry Vyukov Date: Tue, 23 Feb 2021 16:01:32 +0100 Message-ID: Subject: Re: [PATCH RFC 4/4] perf/core: Add breakpoint information to siginfo on SIGTRAP To: Marco Elver Cc: Peter Zijlstra , Alexander Shishkin , Arnaldo Carvalho de Melo , Ingo Molnar , Jiri Olsa , Mark Rutland , Namhyung Kim , Thomas Gleixner , Alexander Potapenko , Al Viro , Arnd Bergmann , Christian Brauner , Jann Horn , Jens Axboe , Matt Morehouse , Peter Collingbourne , Ian Rogers , kasan-dev , linux-arch , linux-fsdevel , LKML , linux-m68k@lists.linux-m68k.org, "the arch/x86 maintainers" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 23, 2021 at 3:34 PM Marco Elver wrote: > > Encode information from breakpoint attributes into siginfo_t, which > helps disambiguate which breakpoint fired. > > Note, providing the event fd may be unreliable, since the event may have > been modified (via PERF_EVENT_IOC_MODIFY_ATTRIBUTES) between the event > triggering and the signal being delivered to user space. > > Signed-off-by: Marco Elver > --- > kernel/events/core.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/kernel/events/core.c b/kernel/events/core.c > index 8718763045fd..d7908322d796 100644 > --- a/kernel/events/core.c > +++ b/kernel/events/core.c > @@ -6296,6 +6296,17 @@ static void perf_sigtrap(struct perf_event *event) > info.si_signo = SIGTRAP; > info.si_code = TRAP_PERF; > info.si_errno = event->attr.type; > + > + switch (event->attr.type) { > + case PERF_TYPE_BREAKPOINT: > + info.si_addr = (void *)(unsigned long)event->attr.bp_addr; > + info.si_perf = (event->attr.bp_len << 16) | (u64)event->attr.bp_type; > + break; > + default: > + /* No additional info set. */ Should we prohibit using attr.sigtrap for !PERF_TYPE_BREAKPOINT if we don't know what info to pass yet? > + break; > + } > + > force_sig_info(&info); > } > > -- > 2.30.0.617.g56c4b15f3c-goog >