From patchwork Fri Mar 1 07:46:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 208682 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2097:b0:108:e6aa:91d0 with SMTP id gs23csp922845dyb; Thu, 29 Feb 2024 23:56:28 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCX0I6qJDEJKpDap6KlC6kyppGt0e46Odjn1r44hoNZrGl+piUcGhMera1CNizoVuwErp1vXws49A+U9/ZlGGuoizilzUQ== X-Google-Smtp-Source: AGHT+IHKj9kkl719+ujJEYqcd86cpgs2PlOVExycw34QhXobtReWX9TU9p5JAOfwcjUssVwEHFds X-Received: by 2002:a05:6808:1411:b0:3c1:b3b1:2776 with SMTP id w17-20020a056808141100b003c1b3b12776mr1221262oiv.38.1709279788352; Thu, 29 Feb 2024 23:56:28 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709279788; cv=pass; d=google.com; s=arc-20160816; b=hio3lFghAiWa6FLN0x446KzVF4iNcgB+x9CczYsgWpMD6U9wCCeUWPCgKwBY5VF4Jh hCsLYwQbx+i18ACucaEkxTmQAwRQI7bpX8IYi/aURL4g4jvBQs16UID8k6V08Yeci7Fz ly4UaK3BR3syZKcptfhEyWsI/iE2uks+nZ/pPvlTtDszkoaBRP/gqyvifV7hafLzSE3x FG25TUDDSjrpdiKxZzM+BJR4CK4nAFvFi1qwcTeOzAg9asFnTZQXJE7pfwHI24s5rjxG mRDdTPssbYueqDr18r4tzKjfSRiXXW8bLYbPRXwaWKk1IHwy6E4RFMtSLK7CtK3pACNS oAXg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:message-id:date:dkim-signature; bh=2vDtF8jsZ47KJFPdTHlyCCCvC1lX3V2rNBLzzEwdQPY=; fh=VnSkHUMhBNoahwow96DScfIaccDcqOPv8XRcKseGH2s=; b=lspML2xDAPriqqaQQeOMMe2sMWMYYrlb6YXM3zagVdlehZFm93q0u/w4wc7T8KnlVo ZQMCBkQ8jnai08birI+p90ASW6dz/VvJlDt0KdgQ9KNj5+xiBHk0ZiHLxJTEkk/b06bg nWJIb54Gp/fx7SoMheOLdMSKLZC1JRut77AA/Dxg8C8HF+JJMkHDw93vsw2/ewaknHfF kHtsdwLD4xOtcqYXaH9OuE+u3Hl8Lj4NIlH9mx7qAsYGBzSmOQd1Qk6F1Wl7LmLT4RWt lGKYRAsB83jpL8WepXXwIeAK9bXHcEAE2ViyBWtQ1pyY4cJqxQZW0YTrISfQ7wWanYjy naqw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=X5CuGzuE; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-88022-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-88022-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id b11-20020a056a000ccb00b006e5c6f03fa7si417159pfv.3.2024.02.29.23.56.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 23:56:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-88022-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=X5CuGzuE; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-88022-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-88022-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id F170D28BD76 for ; Fri, 1 Mar 2024 07:47:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AE64F69D20; Fri, 1 Mar 2024 07:47:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="X5CuGzuE" Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B2CC69964 for ; Fri, 1 Mar 2024 07:47:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709279223; cv=none; b=FpHZ+BAvw1FDJujgzkb6gUACUpSr7g+xVY/mLvzrFHsFEnmEVBO/1/uIxMdr5RtxNwKfY3k6mtncUcf6l4aQVC+nEoL6LpGBnRAuAgzgddaF/Swk5S7uqxcWMPWrUngkr0txRCnyUUVLWYgZvJiZkZ5b4Za/nRyPvG9/l2Khl9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709279223; c=relaxed/simple; bh=/sx6SEtFquJtDyl4dFJaKZNITaLfCxUGF+8rTsmsL5I=; h=Date:Message-Id:Mime-Version:Subject:From:To:Content-Type; b=ljC8C0hDMH7qS+04AwGWcnHRR8RwfthSriNqZU9dOC1CpLo1pIT8spwU7wM72d0HaI4PEScZtLgwB0SROAEfj87cQevehBYmAGRlfAiUNhKj4bkHxBJgN1SKbOg9ry4bQmjsq7LyuorMKaCVR55KZy3dgk6YSpYul7Wg7ZhXkO0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=X5CuGzuE; arc=none smtp.client-ip=209.85.219.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-dcd1779adbeso3403162276.3 for ; Thu, 29 Feb 2024 23:47:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709279221; x=1709884021; darn=vger.kernel.org; h=to:from:subject:mime-version:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=2vDtF8jsZ47KJFPdTHlyCCCvC1lX3V2rNBLzzEwdQPY=; b=X5CuGzuEbpnd08seUNciEd2ZFar+I8pfG77yKvaboqu0k1oqz2VsNIAGgeHsJtXoVc Djc/WfsRTbCtqb9JEQO1R7EwaBXSYTMCRaM7GSHBjGoS6tFDvhaK7FvAcnsoQEmS3Iiu L/C5d98BhT42uyeHopNw5oXln845w5RwNqhhPypS2E0rvwymrcYExdx+Q6xH++Y+JBC6 KQ1L7nrIUCMsPzi3nxupvoP9zFNCrlJ4tuXia3/pqna0ndAfYXv9RS7hdxmxTAM2VZoh JjB1eIlDSBVvDN4wWys8X+9kRBGr5KRau0lFnb4NUi2LXPM5lM80KNmqshwhU+2SECWF cVww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709279221; x=1709884021; h=to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=2vDtF8jsZ47KJFPdTHlyCCCvC1lX3V2rNBLzzEwdQPY=; b=VgNFofExQWN9hTeIRQdA+OIgr4pd+fI2sZaKQ9edtA5A1APMX6AS62X8WBKltaOCJ6 vhMFysEV//JwOM+1U1KLi3pU3wNJKRmPXWS93vAOVxOJ/buZKLAT1PLAL+NzLfrJwq74 imTrYtLG+NZoUUxeAmiytZHXQjZmKWBwezcQvRTTHvsyV/CiQrxnYiHTU/2tr7O3IzFJ zyo3umabBaVBI1QFhhjb+cgmF9p/ORlJnZlr7ljqE17DL+CcgC8ZzNJNhxIj8npqQj3c ZkO126eqTK/074cKgP6HVBkD3g2rw03/p1cIXhPUPsjaF0fiP4rtGj748SCLXAHNvGzj Yzwg== X-Forwarded-Encrypted: i=1; AJvYcCXgf5j22lB/PQ6YAj4gNoB4W1BBJYfSk65iLmq4GLhoR3faxsBmQDXNUJdW7C3eLW9aa4+emif/1MWMdEczqEsvaKSdI74uVuByR3Ai X-Gm-Message-State: AOJu0YzMZpL3jvE3swdHhB8OFIuIdbd+5kZ+UgFey8dLCY+P+YwgCduQ pG5pDZEaFN2tx242J0666lgZW5LGrVSOGa0m5psCZjm6W2t74FTc5KIaV+t8IV3gF+eXX4xIVQI C0r518w== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:af4b:7fc1:b7be:fcb7]) (user=irogers job=sendgmr) by 2002:a5b:f05:0:b0:dca:33b8:38d7 with SMTP id x5-20020a5b0f05000000b00dca33b838d7mr193989ybr.11.1709279221335; Thu, 29 Feb 2024 23:47:01 -0800 (PST) Date: Thu, 29 Feb 2024 23:46:36 -0800 Message-Id: <20240301074639.2260708-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 1/4] perf record: Delete session after stopping sideband thread From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Christian Brauner , James Clark , Kan Liang , Tim Chen , Athira Rajeev , Yicong Yang , Kajol Jain , Disha Goel , K Prateek Nayak , Song Liu , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792309442178589748 X-GMAIL-MSGID: 1792309763240266013 The session has a header in it which contains a perf env with bpf_progs. The bpf_progs are accessed by the sideband thread and so the sideband thread must be stopped before the session is deleted, to avoid a use after free. This error was detected by AddressSanitizer in the following: ``` ==2054673==ERROR: AddressSanitizer: heap-use-after-free on address 0x61d000161e00 at pc 0x55769289de54 bp 0x7f9df36d4ab0 sp 0x7f9df36d4aa8 READ of size 8 at 0x61d000161e00 thread T1 #0 0x55769289de53 in __perf_env__insert_bpf_prog_info util/env.c:42 #1 0x55769289dbb1 in perf_env__insert_bpf_prog_info util/env.c:29 #2 0x557692bbae29 in perf_env__add_bpf_info util/bpf-event.c:483 #3 0x557692bbb01a in bpf_event__sb_cb util/bpf-event.c:512 #4 0x5576928b75f4 in perf_evlist__poll_thread util/sideband_evlist.c:68 #5 0x7f9df96a63eb in start_thread nptl/pthread_create.c:444 #6 0x7f9df9726a4b in clone3 ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 0x61d000161e00 is located 384 bytes inside of 2136-byte region [0x61d000161c80,0x61d0001624d8) freed by thread T0 here: #0 0x7f9dfa6d7288 in __interceptor_free libsanitizer/asan/asan_malloc_linux.cpp:52 #1 0x557692978d50 in perf_session__delete util/session.c:319 #2 0x557692673959 in __cmd_record tools/perf/builtin-record.c:2884 #3 0x55769267a9f0 in cmd_record tools/perf/builtin-record.c:4259 #4 0x55769286710c in run_builtin tools/perf/perf.c:349 #5 0x557692867678 in handle_internal_command tools/perf/perf.c:402 #6 0x557692867a40 in run_argv tools/perf/perf.c:446 #7 0x557692867fae in main tools/perf/perf.c:562 #8 0x7f9df96456c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 ``` Fixes: 657ee5531903 ("perf evlist: Introduce side band thread") Signed-off-by: Ian Rogers --- tools/perf/builtin-record.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 92ccca9574ca..32df34dda9cd 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -2881,10 +2881,10 @@ static int __cmd_record(struct record *rec, int argc, const char **argv) } #endif zstd_fini(&session->zstd_data); - perf_session__delete(session); - if (!opts->no_bpf_event) evlist__stop_sb_thread(rec->sb_evlist); + + perf_session__delete(session); return status; } From patchwork Fri Mar 1 07:46:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 208684 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2097:b0:108:e6aa:91d0 with SMTP id gs23csp922934dyb; Thu, 29 Feb 2024 23:56:43 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUINyiQZ9EItLR+2/6sBT4bYSilKpbA9b8s2fASjav1bj0M9wGaQjhZxbb26N3tsqVI626VNmXkzcV3FNGB+gWbdAFs9g== X-Google-Smtp-Source: AGHT+IFMK0e9I4ETMHQ8UQ5+I4LUnPRPcrYnjknLCMEXAcyUhkDGe84l8tSe8EVzaPSg6o8ZkoNC X-Received: by 2002:a05:6808:11c3:b0:3c1:c9ad:7525 with SMTP id p3-20020a05680811c300b003c1c9ad7525mr1081464oiv.29.1709279802901; Thu, 29 Feb 2024 23:56:42 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709279802; cv=pass; d=google.com; s=arc-20160816; b=DrZ4EzmoUwKrRyN/B30tJjAfpl1JP6Smnhal2PHP9lrpwQdXWDqIYiZhTAzCBEy+ra GKE1nwOT/QsBkDuKMmlkBh5vhkSAwRQSjuShPIHE2kCxbCI5iJ0XYYtWO+MvB+reKDF8 yQamjt2rZTqjHh4WyyHv/Ksrl3IYxu4Ie1YWNrJgWviUIm2+s8ZMfyBpHMGqZtQ1TYMe Svcfuq6r9y8px4mOmMKVcXEKNjb/hWF4B72fn0UyxMDVxEzfVjDiz+3ZsnilEIk0k+16 QtgSHDtZmNNnTR26WkC+bti3LjXgEK4XsC6QPS4nYmFQ9nyV0BDpCvyECg2WK+5xdq48 r6pw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=7Hog9+5whTjGin5G0M4AR3EFSxPaJm96RaOiuDoEPKc=; fh=1XfB4a+cNz8EkiBS6QhOGZgRV6xv4ukUdyinLj/F+Xw=; b=ieEHz4ec98LItaE7d+vSinhZ8c5O+ZxneeS/zSleziX9govgHafE1DwqHOiJyFiHFi XoWU5YjdXCnB5osFi2Q1jNQfe8T+UfHC4ebKN1MH4cedeaTBHQcwoPyT71JdveMWYkpE NE8tQyk6wqNSAn2x3GS8iFJgo+V3RHC1WraldgnlIKnKOJviVE3Hbql4/BlWZa9X6hgZ +Dl/M4E6sa94UvxJjMyYg+vBGpjpw48xRavHfetVtufedCnnDYQHbCjz8M2EH2lxlQMP DZmZfrYfgQFMw0DxJ02oCIweKE7e1tjEpkVneJZ9C16m0IbcTgpvuX7mgw2UPYeSsJ57 nz5Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=0FlNYgO2; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-88023-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-88023-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id d2-20020a63bd42000000b005dbec91be93si3031860pgp.595.2024.02.29.23.56.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 23:56:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-88023-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=0FlNYgO2; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-88023-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-88023-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 012CB28C2A7 for ; Fri, 1 Mar 2024 07:47:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 43FBC69DE9; Fri, 1 Mar 2024 07:47:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="0FlNYgO2" Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CABC469970 for ; Fri, 1 Mar 2024 07:47:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709279226; cv=none; b=BRS66o2/xwg3OVrSx6KD8/kBjrQIMb8Ud97tWuR+liV+BLjQpFCblofKx9qMv3bCwtFivcnNJEk/7Ehm/yeThtnILDMZ9h0gGHBActmXPsKWr9SF3zWikm3+qVPGXOZeBFKCNYFnlPJL1Bj/0ktv6XxfY0/Glz0qkLDlkh+9i0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709279226; c=relaxed/simple; bh=VOm7IPIBVo5PZ4RqJQ+la336Qu+bZ3B28KGc7lbQY1c=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=k6E+JbUBzTNXwWfANvzhKQoscXMyFAsjY60rPkW11hzbWxsaRAChEMHcXJnWMr+nL3N2qRmcxR7wI2Rh75UInpZNxuYqO5rs819hXUDdadrs6GicLVjHAxJZP8/BGt4e88Ec2J2UJ+fWhctWjxdq2ELVa8Zv+cBBK+tD24NuDEg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=0FlNYgO2; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-5f38d676cecso38366467b3.0 for ; Thu, 29 Feb 2024 23:47:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709279224; x=1709884024; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=7Hog9+5whTjGin5G0M4AR3EFSxPaJm96RaOiuDoEPKc=; b=0FlNYgO2kqOhGSyfpAQQBJL1dd7rKBTXhz3pINcsFfaMqmJcqnTG38B6jaOJlZXlQY WlsuBT/nNTGPGC//5tqc4rpTUVLgYs4rpPPNsIzpypx8lnlebYPINeUbAMKDXKQ29chz LmHhrF1YPf+sJ4JZiSSvs1CnCaeR+eszxK/wEI/buDluavltGj5Zp0Ht9VOag+wmoP5l VDoLtK/uit8Qwl7HUGHYZa0xIVsnJ23fCW6CxulTSv6DVMQdI+l5fAmJTaQz5xPSYsXV NstLWqmsKtuX1zhq9l/EYAI9DC1uZmnzCfFvv/fUdPRFx4qfsdp+2pFqqs9yh4+jcOSO oIaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709279224; x=1709884024; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7Hog9+5whTjGin5G0M4AR3EFSxPaJm96RaOiuDoEPKc=; b=jxpYR512aQ9Ry06nij2TG7O7f9Vx+KFnYcphBe8WDw0kYv3HpXtsOcEYnmMBaL9fmV zEXOmxZfOp8e8b9qQTh7AGiiHD2jUHJEXWZdC3UkJYo+8cmFi9h/zpy31y7fav5y6oH8 slbTzH446S7/2X6QiyhblVUSgli9GcPGv+X0ICkYG5QMrnYztdhOa8FoAUTRH/Al9dCk 9RhVhE/UBS/xrWt9DLXc+CP4/6LUqaWA4/8kfWSaDoD72PENeetzaFEHRL38DICN/ngr LHP+4lwvjJ6GjF9ziQBHlUPDbrvGwiwk67FAhPLw/cOz7/f1vvUc9JWL+1VK0oYV5AuE kq+g== X-Forwarded-Encrypted: i=1; AJvYcCUylwMOVbFJDHR9Lry3Y3jNauVWE5piRr5WrX9upD5UhOsVHOVnu05vA4oszmPcw/8QzzHr/eiBkJFEcOecCjjBAuWrO3ieU4XKhPZP X-Gm-Message-State: AOJu0YxizHplgQCGm/QIl0UsnS4KRDWC7QWkG3yvZ4K5tgEdLXAw0GCg t+HO5WuIW19WQQlZcbQxNfMD2gXntQ0DtoSb4iQDAG555YBhssy1viIcXAlWIJene/SE9LytBpW cx9g3jg== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:af4b:7fc1:b7be:fcb7]) (user=irogers job=sendgmr) by 2002:a05:6902:1249:b0:dc7:7655:46ce with SMTP id t9-20020a056902124900b00dc7765546cemr280153ybu.2.1709279223896; Thu, 29 Feb 2024 23:47:03 -0800 (PST) Date: Thu, 29 Feb 2024 23:46:37 -0800 In-Reply-To: <20240301074639.2260708-1-irogers@google.com> Message-Id: <20240301074639.2260708-2-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240301074639.2260708-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 2/4] perf test: stat output per thread of just the parent process From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Christian Brauner , James Clark , Kan Liang , Tim Chen , Athira Rajeev , Yicong Yang , Kajol Jain , Disha Goel , K Prateek Nayak , Song Liu , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792309778054106064 X-GMAIL-MSGID: 1792309778054106064 Per-thread mode requires either system-wide (-a), a pid (-p) or a tid (-t). The stat output tests were using system-wide mode but this is racy when threads are starting and exiting - something that happens a lot when running the tests in parallel (perf test -p). Avoid the race conditions by using pid mode with the pid of the parent process. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/lib/stat_output.sh | 2 +- tools/perf/tests/shell/stat+json_output.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/tests/shell/lib/stat_output.sh b/tools/perf/tests/shell/lib/stat_output.sh index c81d6a9f7983..9a176ceae4a3 100644 --- a/tools/perf/tests/shell/lib/stat_output.sh +++ b/tools/perf/tests/shell/lib/stat_output.sh @@ -79,7 +79,7 @@ check_per_thread() echo "[Skip] paranoid and not root" return fi - perf stat --per-thread -a $2 true + perf stat --per-thread -p $$ $2 true commachecker --per-thread echo "[Success]" } diff --git a/tools/perf/tests/shell/stat+json_output.sh b/tools/perf/tests/shell/stat+json_output.sh index 2b9c6212dffc..6b630d33c328 100755 --- a/tools/perf/tests/shell/stat+json_output.sh +++ b/tools/perf/tests/shell/stat+json_output.sh @@ -105,7 +105,7 @@ check_per_thread() echo "[Skip] paranoia and not root" return fi - perf stat -j --per-thread -a -o "${stat_output}" true + perf stat -j --per-thread -p $$ -o "${stat_output}" true $PYTHON $pythonchecker --per-thread --file "${stat_output}" echo "[Success]" } From patchwork Fri Mar 1 07:46:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 208677 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2097:b0:108:e6aa:91d0 with SMTP id gs23csp920291dyb; Thu, 29 Feb 2024 23:48:09 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCW+M9ajvCCyCRmKVNnqHXY1+Z/iHpOsNtRCscj1/Q3/3t/2KGdeSygSKtAU1ojEj2VXYCsu1D5Ch4fHo0zavT4nXmxSRg== X-Google-Smtp-Source: AGHT+IEwxwcOL2Ryf93wLmX54fHyy2pFcUUN9HeymXhx63DyBqsdDGwD3IHIG0s2K8YVMCz5WQx7 X-Received: by 2002:a05:6214:186b:b0:690:1715:c022 with SMTP id eh11-20020a056214186b00b006901715c022mr901050qvb.3.1709279288908; Thu, 29 Feb 2024 23:48:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709279288; cv=pass; d=google.com; s=arc-20160816; b=UClfhdFrCsKC/zv6VjqIK/uI80tUix/IXeagpQuROJll4SF5e8PzuEkuN6LQmbkk/6 Rupf3fmQP3caZw6wcCl9DfDIfSGOEHkmiizBDPhmGeqcj0lt57204dzODYyLmkfR+WkB j73zeI3EWSiJJDC76I8YW7F5WjufovioaCjz2mJ5sf9WxZfBvhFMJR2vpQNtjBThakNv vx2OzO6R78tmeN1B3anK7jtBWpw//LXynO8tgD13dSGE4cINK6F2T/YQfHxYo5risWBH dSsd6UNwUFgf/sOHAREVvZRR7hmg4GFbjHh87zQ7nbQGettDxnkaaRapqkDid8nMTOzK uYEA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=5K+5oMd/UIqBC7bRKcwIBEqT27MHFEvvuXXTUo0sv5w=; fh=K04rDuOpP9AfjedjEg7u7Ij3zMQLy/q34kb7MPP49F0=; b=0sm0K/r5/rsJsgOFIqm202+fhwoni4FrbBvQPEitJkey1zr/dnrY13Vfsrserc7tOu noo8ZqrlSYcVVUqoClSLHVm1zONZzXRJZy+QzyFEv1+1W3iT9mgzNA8twImAYX1q2cm/ yvu/XkUfIofWWVRpuJg4c91GeA7szMQxjJJYD565ziVjxjPnS0sNXX0Zz6C32Kk67pdu SDRR3sBNHQIKGfl+bHPiBTPGvh01/2gR2IGGvHTDT6jS2oEAI17+c+JY0upNP39UHZU3 cbU1CRs6ZtjiuhIlJab+UCRTjkNx4xe2RI7tDTBzqMmjKzVI+5elW2gbIbgYDNjfE2jU 5XBw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=ecohGLLs; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-88024-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-88024-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id kk25-20020a056214509900b0068ffe6f0833si2992293qvb.91.2024.02.29.23.48.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 23:48:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-88024-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=ecohGLLs; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-88024-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-88024-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id A0E191C20F96 for ; Fri, 1 Mar 2024 07:48:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D92AB69E0E; Fri, 1 Mar 2024 07:47:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="ecohGLLs" Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 105FE69D28 for ; Fri, 1 Mar 2024 07:47:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709279228; cv=none; b=TWGq+6TAaaWmsq042620ervSJooMRVT3VD4KrMnY+RgelO6OM/CDDA18BuLUlUz8aBQzsjBBNCjC8Kx6n1ijIHKiSLefT3LPPv2VBeHd1L0J/TspnshF8MCePsCw1c49nvpA9w0g4EdJAH7jlw5Cy9V+hw+mDXZe608GIORTf/A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709279228; c=relaxed/simple; bh=wTr8XZF47y1mIM8sF/7w7Q/9jLsnFEsaFsOMi3gXkm0=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=s8op6m67UZ8DUukZWgZVgZu1ARgPxeAkNtb71FLSr1WDanKTy8l7TlafX6zDsFyi/iM5GBS2bvy1kRr3igoA1sDvEm/DgyT44rYC4y4oVOdZEEOnGC5X96IpIVNggzBSTmq3yfWvz/l4hVdxbO9O/+84nUXqIUbExxIdrgvTyVs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=ecohGLLs; arc=none smtp.client-ip=209.85.219.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-dc647f65573so3313819276.2 for ; Thu, 29 Feb 2024 23:47:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709279226; x=1709884026; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=5K+5oMd/UIqBC7bRKcwIBEqT27MHFEvvuXXTUo0sv5w=; b=ecohGLLs9wBizFLV4MPPvwm2TPxwM0HJkbZ/kTDh0+jFu59kzp+OvK/BC/FmJwUsdj +ePhYw9h7FYBN1+x0itIlkztuqoCRsL1XWjrQdk1JC4MI9ZmAmqpVuOlOR6JEuesc8vZ ptvNQXG42cwS8Hz2P39BNk7vvocLUs+I14mqwETrNVTHsuILlHfX4lBd9CZR1i4A6Etd RATx3HbL03Ef9YrH7Zc9T3+Ju0jO1YF+rEf8ukZ0tYU56GBAh2M3yrQ+wPW8bSx7eaKR GkTX31wwSch7OmQjdaN+OrUDcC6mYAZv8Gu1X/7cRQh+mlb/v6DnaD9GyHm5b/LLnH75 Obcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709279226; x=1709884026; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5K+5oMd/UIqBC7bRKcwIBEqT27MHFEvvuXXTUo0sv5w=; b=Fm1g1MAv8fHE1Dye8V807v6M2tarf8IipZqyNGu49Ed1B72TWNMECz5oXuChPS6G5f X41ry0t5oMCvqDXkLJL5kjyavcbSnbKMQs9cewnd5bBChtgvMDI7X4PXHOmNCjZjvEhv lUzzgWu34HHIVFmIwKMEdhSoEaXkQpp055i+n+Ql+Nkz+gafEwAqvXun9RVt+D3b/pZQ VjSDee+JvQI1cCEUV2r2b3t73jRKvbcrFEgjH8JLGcbTgqX6SF7rUIt/xaBi4VhQ8tab L7gPP0f4TFcdqVCAGoC0HeCTqyiYs5OHEVppkMJfd8zFNaIDPSRP3ixVGFdN352s0pCw exSQ== X-Forwarded-Encrypted: i=1; AJvYcCWpJxHReWxIk0rRiZ8iGXwWOqZWCwO4vf4E7X4QlxVXOo64KRT1whmh4gwkFmfnsKTMD0jfYoS7UavJvK2v/L8nFCo803OsL1nd1aga X-Gm-Message-State: AOJu0YxFI9yWeh8QdbZwnJeqtKl2cjD0M38qHn1ERtSmQL/awqNHz7GA VlWDCbmtgRL4yZ71pQK1z2h8NsBWgBG53ogpz64LXcD8Y0nGMTCcA6xutaKUF+BKDGyqwNqL09g nAU5Ggg== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:af4b:7fc1:b7be:fcb7]) (user=irogers job=sendgmr) by 2002:a05:6902:1004:b0:dc7:48ce:d17f with SMTP id w4-20020a056902100400b00dc748ced17fmr181054ybt.10.1709279226074; Thu, 29 Feb 2024 23:47:06 -0800 (PST) Date: Thu, 29 Feb 2024 23:46:38 -0800 In-Reply-To: <20240301074639.2260708-1-irogers@google.com> Message-Id: <20240301074639.2260708-3-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240301074639.2260708-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 3/4] perf test: Use a single fd for the child process out/err From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Christian Brauner , James Clark , Kan Liang , Tim Chen , Athira Rajeev , Yicong Yang , Kajol Jain , Disha Goel , K Prateek Nayak , Song Liu , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792309239682988719 X-GMAIL-MSGID: 1792309239682988719 Switch from dumping err then out, to a single file descriptor for both of them. This allows the err and output to be correctly interleaved in verbose output. Fixes: b482f5f8e016 ("perf tests: Add option to run tests in parallel") Signed-off-by: Ian Rogers --- tools/perf/tests/builtin-test.c | 37 ++++++--------------------------- 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c index d13ee7683d9d..e05b370b1e2b 100644 --- a/tools/perf/tests/builtin-test.c +++ b/tools/perf/tests/builtin-test.c @@ -274,11 +274,8 @@ static int finish_test(struct child_test *child_test, int width) struct test_suite *t = child_test->test; int i = child_test->test_num; int subi = child_test->subtest; - int out = child_test->process.out; int err = child_test->process.err; - bool out_done = out <= 0; bool err_done = err <= 0; - struct strbuf out_output = STRBUF_INIT; struct strbuf err_output = STRBUF_INIT; int ret; @@ -290,11 +287,9 @@ static int finish_test(struct child_test *child_test, int width) pr_info("%3d: %-*s:\n", i + 1, width, test_description(t, -1)); /* - * Busy loop reading from the child's stdout and stderr that are set to - * be non-blocking until EOF. + * Busy loop reading from the child's stdout/stderr that are set to be + * non-blocking until EOF. */ - if (!out_done) - fcntl(out, F_SETFL, O_NONBLOCK); if (!err_done) fcntl(err, F_SETFL, O_NONBLOCK); if (verbose > 1) { @@ -303,11 +298,8 @@ static int finish_test(struct child_test *child_test, int width) else pr_info("%3d: %s:\n", i + 1, test_description(t, -1)); } - while (!out_done || !err_done) { - struct pollfd pfds[2] = { - { .fd = out, - .events = POLLIN | POLLERR | POLLHUP | POLLNVAL, - }, + while (!err_done) { + struct pollfd pfds[1] = { { .fd = err, .events = POLLIN | POLLERR | POLLHUP | POLLNVAL, }, @@ -317,21 +309,7 @@ static int finish_test(struct child_test *child_test, int width) /* Poll to avoid excessive spinning, timeout set for 1000ms. */ poll(pfds, ARRAY_SIZE(pfds), /*timeout=*/1000); - if (!out_done && pfds[0].revents) { - errno = 0; - len = read(out, buf, sizeof(buf) - 1); - - if (len <= 0) { - out_done = errno != EAGAIN; - } else { - buf[len] = '\0'; - if (verbose > 1) - fprintf(stdout, "%s", buf); - else - strbuf_addstr(&out_output, buf); - } - } - if (!err_done && pfds[1].revents) { + if (!err_done && pfds[0].revents) { errno = 0; len = read(err, buf, sizeof(buf) - 1); @@ -354,14 +332,10 @@ static int finish_test(struct child_test *child_test, int width) pr_info("%3d.%1d: %s:\n", i + 1, subi + 1, test_description(t, subi)); else pr_info("%3d: %s:\n", i + 1, test_description(t, -1)); - fprintf(stdout, "%s", out_output.buf); fprintf(stderr, "%s", err_output.buf); } - strbuf_release(&out_output); strbuf_release(&err_output); print_test_result(t, i, subi, ret, width); - if (out > 0) - close(out); if (err > 0) close(err); return 0; @@ -394,6 +368,7 @@ static int start_test(struct test_suite *test, int i, int subi, struct child_tes (*child)->process.no_stdout = 1; (*child)->process.no_stderr = 1; } else { + (*child)->process.stdout_to_stderr = 1; (*child)->process.out = -1; (*child)->process.err = -1; }