From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f202.google.com (mail-dy1-f202.google.com [74.125.82.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 37F50391517 for ; Wed, 13 May 2026 23:05:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.202 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778713512; cv=none; b=CIFt62APTmg3REYR8pY2WOTowRPHwBVwVYR2KDsGWKeVRsl5vqz3uX0+sWn17Kgu8RvCCMeWGIuqbt5XaCbDHvOnmBo6AWmAAFHaDEUJWln9lMKdBuWHR3FLFV6o1Y4IViIvSaJm+PR+jnC7RP+kGW3h6wM3Tx6Wcf5zKiU9TOs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778713512; c=relaxed/simple; bh=bWChlgQf4f4BwTHMXNaa/t8wf4NpMTe6O5JeS3KVbnE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=GonkS3Jhjakxs200zam11G9tYRCWjR1CBJBI0wKG4fpKzSTR67n55jsdi1Vo33OCLcJNZlZ9IoyTUH8f2zLF/IwME6wFFXr4V/tLQH34Rvp9HrgL3yDdbg2RN3xIvsp9qlo9Cm73dFF/6V81p6iDAi1PPGBUlzq5uuGLeFNtIlM= 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=hMICLA9+; arc=none smtp.client-ip=74.125.82.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="hMICLA9+" Received: by mail-dy1-f202.google.com with SMTP id 5a478bee46e88-2ba9a744f7dso7435923eec.0 for ; Wed, 13 May 2026 16:05:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1778713510; x=1779318310; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=ZOM186MA413sPqwCdIz6BnRQNidG3sxEQ8H7HX8kFvE=; b=hMICLA9+gLwaqGz0bZSPePUeLEfNVB4h5+OksDpQyF2J9IKCG342sI2fU+EF6wCmHs IKLHpseqnfQ9d6bvUYy5KDMlFUrklB94u1Cl0n8spDmBdQK6kXsQs8EQ33MKfkWkT/vI tKcK86dbIx6TUsu4g39ytQZ4uMvvYrkglDuGDCDEm7kalKRTJxyzwdUCHlaY7/vW4UeN keKj1idNqfQWeErotMXzKunXEbG6ky/7KjQC3YnM9qZys8qwfKFIYuWzSPZTmb/6tdNG bcLYVPc2BKwbuHvzgl/Va/8jec947RXDgsUEDgWvhW5BLzOxtfO0uzEwcuyQneQKZsly 2D4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778713510; x=1779318310; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ZOM186MA413sPqwCdIz6BnRQNidG3sxEQ8H7HX8kFvE=; b=VrZ3WdtaSZI95m4/ibCgQi0eSUY0G7cBc8cZDlquubvEz/GbWjpxSqHwo8hU8ELSON PwszF7J+tBTJzxOuMnDijxuEJnkN2Iyho4J2omqRTxLOY9zDV59+5PhIwL3eLzmnauUI YXWOun1KbfO+a+r84bQhS0o4ORs3Tt6b8phXIEaFWMFDa62oRlW/O7aLfOUdISI2lErE xIPlJIrmDBNhkcln/bSLy9mBS5HXvb7ve83G6oHQH3DAScxzqq+cGzuVjD/YEwlqa3Vd BrKCQuWbdOPFBlEyYGFMT5uG2jH6V6pHi7KbIS2MWIjbBS0EH3Kt3TKbf2RGGvNp90v2 fTng== X-Forwarded-Encrypted: i=1; AFNElJ/2UjEzD+4/ZLiTnJJvYLKufNUJQPq3hk2DH2ZIuapeLUgyHhNxc5Of6j8cfpkdJBTSt6L0HEcupqccS+E=@vger.kernel.org X-Gm-Message-State: AOJu0YzvP5MwQKOl/ba/0y+dbnLPfwC1VG53w52i2zmPCZx8OnQt7E3b 5FukysI91UDGwl8AZEDJmMmx6KoWLnsYzxSJMZA25chJvmPxCl4NTf+jgtrALyT1YXov8r+xFDR 66vQB9PGEWw== X-Received: from dycai19.prod.google.com ([2002:a05:7300:fb13:b0:2da:55db:5766]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:7c0c:b0:2c5:60d0:702e with SMTP id 5a478bee46e88-3011996d245mr3079149eec.18.1778713509976; Wed, 13 May 2026 16:05:09 -0700 (PDT) Date: Wed, 13 May 2026 16:04:39 -0700 In-Reply-To: <20260513230450.529380-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260513230450.529380-1-irogers@google.com> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog Message-ID: <20260513230450.529380-4-irogers@google.com> Subject: [PATCH v1 03/14] perf test: Drain pipe after child finishes to avoid losing output From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Adrian Hunter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Cc: Ian Rogers Content-Type: text/plain; charset="UTF-8" When running tests in parallel, the parent process reads output from the child's pipe. However, it might exit the loop as soon as the child is detected as finished, potentially missing data that arrived in the pipe just after the last poll or before the loop terminated. Address this by draining the pipe after the main loop in finish_test. Assisted-by: Gemini-CLI:Google Gemini 3 Signed-off-by: Ian Rogers --- tools/perf/tests/builtin-test.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c index 06507066213b..e88a5f72faed 100644 --- a/tools/perf/tests/builtin-test.c +++ b/tools/perf/tests/builtin-test.c @@ -482,6 +482,16 @@ static void finish_test(struct child_test **child_tests, int running_test, int c if (err_done) err_done = check_if_command_finished(&child_test->process); } + /* Drain any remaining data from the pipe. */ + if (err > 0) { + char buf[512]; + ssize_t len; + + while ((len = read(err, buf, sizeof(buf) - 1)) > 0) { + buf[len] = '\0'; + strbuf_addstr(&err_output, buf); + } + } if (perf_use_color_default && last_running != -1) { /* Erase "Running (.. active)" line printed before poll/sleep. */ fprintf(debug_file(), PERF_COLOR_DELETE_LINE); -- 2.54.0.563.g4f69b47b94-goog