Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp787208rwe; Fri, 26 Aug 2022 14:43:12 -0700 (PDT) X-Google-Smtp-Source: AA6agR4aOn+9+ml1HSVoKmQyW/GfZkbkFwzEbXVESzoyVVa4vQKu5RV8WLGlM+wSDV4F3E7jml9U X-Received: by 2002:a17:907:60c7:b0:739:52ba:cbd0 with SMTP id hv7-20020a17090760c700b0073952bacbd0mr6680794ejc.152.1661550192376; Fri, 26 Aug 2022 14:43:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661550192; cv=none; d=google.com; s=arc-20160816; b=x4j0YlNX1SuvvAxzh16t6Up2+VWTZZEdnE3YPBULt4KADoSIIDcowMuzDi8TJqNnvi 6kCarCAXcUIh71CdOpGqizY386C4SufCUErcNSOcIOr8u+4zb9umT7sabf85n2Y6tGcG blE0Od3G9f/hNjIbuvVTx5/DJBJumYYPZqEeM1iQrDSzZbBFLW5Uf0DMn0IODEhhUncq dKMc3gLpo1BahU+58SUOJm0XFkXScnWFf7gw/CMYdvYWx0ccQV1dXsKqaIhNY2wNdL09 V5fUDSLx1/6px0e2ofm9rYhnGhIFMyVyL0EpnvVXw63I89pv8fUddony4cTQKnY6VW/I fzVg== 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; bh=exgbzKr463Q9s30OYFv8bOmIUD5a1Cxa1f8CavAdtto=; b=VJHGpDHcynh1dng/vQSHCK8RU1aVkrwzdUNiuVXqa4fNzLSzNLhsoZoLqlGweQgL5O MhDd14E1aX2WvZImbjcVk99cONuEKzH54e3A/tRpC3gEQIVwtWUbR7k2LBj2y+yzrwB7 2pTNhW96NvedmDulyJ+0OZCQZB6ZD8z9WNwKONsZsEVv//BzyjGptqZguU/hJtTjrhW2 gXac3ObzqCK7VtPTSH883HnmPaczQTHgCqlSuUayCry9c1M1KBoQQ4DvFrmPD5OmyM5L J9jzOFU9V2K3nO9700D58D89/BsnH1Ma39SA080SnYizCixR1uk+Im0p+YaTppD5W/9W N9tw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y1-20020a056402170100b00447e25f915fsi1662990edu.603.2022.08.26.14.42.46; Fri, 26 Aug 2022 14:43:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240616AbiHZVNL (ORCPT + 99 others); Fri, 26 Aug 2022 17:13:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54394 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229676AbiHZVNJ (ORCPT ); Fri, 26 Aug 2022 17:13:09 -0400 Received: from mail-oa1-f48.google.com (mail-oa1-f48.google.com [209.85.160.48]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 145A5E58A3; Fri, 26 Aug 2022 14:13:08 -0700 (PDT) Received: by mail-oa1-f48.google.com with SMTP id 586e51a60fabf-11e9a7135easo1122458fac.6; Fri, 26 Aug 2022 14:13:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=exgbzKr463Q9s30OYFv8bOmIUD5a1Cxa1f8CavAdtto=; b=xBLS/5XHp0du2rpBZ4AywkGWUf3qY+9sIJxQ/8p8FfnNNqCu8aznZrB5KJxghWhL7O 32KUXDG4A701OoA0MTMwHzvQ1t7jvFO/hjt18qGr0kBSQlOgRsZ/aVvrm3ET7s7P7ygg rsoLyeYzt9KeDJ90pS2L2MGqlvb2y/sYiYeOgdVoNrzbsb3pjP6RtajWjk/Pa+90xT10 byWk2tXHT7MBWYhZuvb0hfdV2disK2r0suRrWGSmu7FNey5hpboewEQQ9XcJz9HL6wj7 sc6OaVmqJulRxvZHSU1mG1nTmPjdz1WtOcUSenyDa+4NcqjONfp9EXyfUUm0sYuGGkn9 F45g== X-Gm-Message-State: ACgBeo1QhWkkW+YAEIiZ3KACgrKUIOfw9KVcxuKEDhaRfWEkASsdW/z5 xwlG0xPD62kNNTznIGkPPzFcMzcuBgfLKQ5HdYk= X-Received: by 2002:a05:6870:5b84:b0:10c:d1fa:2f52 with SMTP id em4-20020a0568705b8400b0010cd1fa2f52mr2779792oab.92.1661548387360; Fri, 26 Aug 2022 14:13:07 -0700 (PDT) MIME-Version: 1.0 References: <20220823210354.1407473-1-namhyung@kernel.org> In-Reply-To: From: Namhyung Kim Date: Fri, 26 Aug 2022 14:12:56 -0700 Message-ID: Subject: Re: [PATCH bpf-next] bpf: Add bpf_read_raw_record() helper To: Song Liu Cc: Song Liu , Andrii Nakryiko , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin Lau , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Steven Rostedt , Peter Zijlstra , Ingo Molnar , "bpf@vger.kernel.org" , LKML Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 26, 2022 at 1:59 PM Song Liu wrote: > > > > > On Aug 26, 2022, at 12:30 PM, Namhyung Kim wrote: > > > > On Fri, Aug 26, 2022 at 11:45 AM Song Liu wrote: > > > >>> And actually, we can just read ctx->data and get the raw record, > >>> right..? > >> > >> Played with this for a little bit. ctx->data appears to be not > >> reliable sometimes. I guess (not 100% sure) this is because we > >> call bpf program before event->orig_overflow_handler. We can > >> probably add a flag to specify we want to call orig_overflow_handler > >> first. > > > > I'm not sure. The sample_data should be provided by the caller > > of perf_event_overflow. So I guess the bpf program should see > > a valid ctx->data. > > Let's dig into this. Maybe we need some small changes in > pe_prog_convert_ctx_access. Sure, can you explain the problem in detail and share your program? > > > Also I want to control calling the orig_overflow_handler based > > on the return value of the BPF program. So calling the orig > > handler before BPF won't work for me. :) > > Interesting. Could you share more information about the use case? Well.. it's nothing new. The bpf_overflow_handler calls the orig_overflow_handler (which writes the sample to the buffer) only if the BPF returns non zero. Then I can drop unnecessary samples based on the sample data by returning 0. The possible use cases are 1. when you want to sample from specific code ranges only 2. when hardware sets specific bits in raw data Thanks, Namhyung