Received: by 2002:ab2:620c:0:b0:1ef:ffd0:ce49 with SMTP id o12csp1598046lqt; Wed, 20 Mar 2024 08:33:09 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXItT5GQ89VlgYdzD+9RCumbDXDWoFPqKIEhopQertZKCSDqns2IMFrhFC0NprtrD/pTEKNn34r9wXbOPkgKlkZ2i8c+SBbc9Q/oy3EFw== X-Google-Smtp-Source: AGHT+IG3UrIcK2l29UeuKFagpQVMa6mC75CY9Zv49ppS13vYkPpvSUaVD/y+ZzaRoVdsVZxgsJE6 X-Received: by 2002:ac2:5465:0:b0:513:2011:3d2f with SMTP id e5-20020ac25465000000b0051320113d2fmr4445152lfn.9.1710948788895; Wed, 20 Mar 2024 08:33:08 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710948788; cv=pass; d=google.com; s=arc-20160816; b=FGemy2HhAQfiKSnMLzCeMCOYDhSHzjTgkNHvvzfTpYbUPUSqxg3LOQQhOaBTwriIiR pqk0VkjFWIs2VruvWKO2kUX15PfGrN4bCeIcLhNaxsuEvBNZk2+nMow94jDJIoF4QlXR 5+kWxwyr1vtAcduLEE6v5cihtM5PsvhaBuCIptw3dWj7FJfI7k3hvqRoWR7kDVF1jxsb pycZxLNvfB6gxBZ39IZi3tJIFIp+EFEdmRb8Q63Rjr9RZ4BHJ8bzuNJFyMFzymrs/XSA YojkemVN8baRXa0dqOBmYEAT0OnRgPG3H/yPVuQtsKrIq3aFKvOsYlv19ZvwdfzJGyU2 0DzA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:message-id:subject:cc:to:from:date:dkim-signature; bh=fKoJkCrvlZGHrtca+J/iZIzaN//RFOdwwhiwwmZSg2E=; fh=+nf3xsUObfH9Yp5NDiwu6oI02KIu+MFZ4MEudg/3pt8=; b=noE0uUQe/ozKOMKUrwyD800L1QjKMMl4JrsGIFc4/l3M41AoE8++1C2dibipUkv4Ge 4+FTbrHqMf7selEzfroW9+3C9R8xlj4JRzsM+LYsXT6OUiwx9Q+uoE5YQi9+CDGR7a58 5u2Ut9Vou9/Yh4k9aP5JDNnjY+xapQS6rTqVOYvoFgfeANLUdKKEJFOk5No4Ki7IXumo D/HTHGQ2+qCQ5SJwFfNcLMR1mJkMNHViPlBKfuiGCKtb5uVHzTsWcU3C2y7LZM+2WxJ2 GS6XHJs1dlYdpw+a9U3429N86xUF0JdBmoM6Mis0tBU8tI5cOGOZ0mXbYuPMZXReS0oh rIBQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aIv0ooDJ; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-109104-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-109104-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id x6-20020a05640226c600b00568c39e9111si4234539edd.260.2024.03.20.08.33.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Mar 2024 08:33:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-109104-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aIv0ooDJ; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-109104-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-109104-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org 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 am.mirrors.kernel.org (Postfix) with ESMTPS id 94DEB1F22446 for ; Wed, 20 Mar 2024 15:33:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9814554666; Wed, 20 Mar 2024 15:32:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aIv0ooDJ" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEBC353E14; Wed, 20 Mar 2024 15:32:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710948774; cv=none; b=chmHMJoYNWcy+pJVGF2pPYm+CMcxXkjpsVYHTR7WD1S+FppjmSiSqBl7036ShKNThvC+HkJX3Qp1UL4LgiX0MpLHCJFolbNCgZ3VVpjjz/tHqf5LTU48fdY4y2AJvLX70fnUfl2UZLNoVNloMz6qxx7EH75GKp3NE0a208oG7GU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710948774; c=relaxed/simple; bh=jXnepYnPUUQUuOFTV5avKiVLlnCRROuyiCpNkq1UfMI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=I4Huoh78uo4V6x4gccQm9qRlmMqwuI26UkgEujy+bpyOeNFe3vrI2egFNGK6wJ+AEXEWdriFdDgd/9apjWpQeSjRVWifjvO9EbWig4nX+mtx6SuTpFW6ZVWSyNJYVm2760eHM9e6vStRXwpobJ9RV3jkbhyL0G2VRL96+w/FteE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aIv0ooDJ; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8811C43390; Wed, 20 Mar 2024 15:32:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710948774; bh=jXnepYnPUUQUuOFTV5avKiVLlnCRROuyiCpNkq1UfMI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=aIv0ooDJZ71ZSc/Dwbb5OF/iiZubkD0MGkdRmCnfsN1RwF+oGbFywJYb3ZhFjft9q dJrnBAjjQzWpdeNow+P8auLLHYdGnuLl86GeAyo/EFZY8EYLVIgvoRw5EsCYkRaREh F7qhvfwBNOJWE/iz/bHu1qLo4aRbaPRvYj9qD8+uD01y2xPu/8ZCBJsjugiMtpGrYB 7d+xjmZHokc3zLfTtL8pKXivjJVCktF46JhQGc7xjtVlDXbHrEah4lgRP73YtnwAkq XzllpHz7hn7eqKfEOx+jtgTZiL1b5jacYlibFMzBWTG+W96ZopZS8kb12CLp/zuOFp M5yw55RLKsDbA== Date: Wed, 20 Mar 2024 12:32:50 -0300 From: Arnaldo Carvalho de Melo To: Ian Rogers Cc: Peter Zijlstra , Ingo Molnar , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/2] perf: Suggest inbuilt commands for unknown command Message-ID: References: <20240301201306.2680986-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Wed, Mar 20, 2024 at 12:20:20PM -0300, Arnaldo Carvalho de Melo wrote: > On Wed, Mar 20, 2024 at 08:12:56AM -0700, Ian Rogers wrote: > > Ah, the change: > > > > - static int done_help; > > + int done_help; > > > > created an uninitialized use. Compiler warning/sanitizers? Anyway, > > done_help needs hoisting out of the loop and initializing to zero, or > > being made static again (ugh). > > ⬢[acme@toolbox perf-tools-next]$ git diff > diff --git a/tools/perf/perf.c b/tools/perf/perf.c > index c719e6ccd9e27778..f9532b20e87cbf05 100644 > --- a/tools/perf/perf.c > +++ b/tools/perf/perf.c > @@ -459,7 +459,7 @@ static int libperf_print(enum libperf_print_level level, > > int main(int argc, const char **argv) > { > - int err; > + int err, done_help = 0; > const char *cmd; > char sbuf[STRERR_BUFSIZE]; > > @@ -558,8 +558,6 @@ int main(int argc, const char **argv) > pthread__block_sigwinch(); > > while (1) { > - int done_help; > - > run_argv(&argc, &argv); > > if (errno != ENOENT) > ⬢[acme@toolbox perf-tools-next]$ perf raccord > Fatal: Out of memory, realloc failed > ⬢[acme@toolbox perf-tools-next]$ > > Then: > > diff --git a/tools/perf/perf.c b/tools/perf/perf.c > index c719e6ccd9e27778..54f62aa6612bc290 100644 > --- a/tools/perf/perf.c > +++ b/tools/perf/perf.c > @@ -558,7 +558,7 @@ int main(int argc, const char **argv) > pthread__block_sigwinch(); > > while (1) { > - int done_help; > + static int done_help; > > run_argv(&argc, &argv); > > ⬢[acme@toolbox perf-tools-next]$ perf raccord > Fatal: Out of memory, realloc failed > ⬢[acme@toolbox perf-tools-next]$ That main_cmds variable is uninitialized, which ends up making add_cmdname() to explode, are you sure this is working on your side? Further clarifying, this is without considering the second patch, I haven't got to it yet, from what I recall from the description it shouldn't matter tho. - Arnaldo ⬢[acme@toolbox perf-tools-next]$ git diff diff --git a/tools/perf/perf.c b/tools/perf/perf.c index c719e6ccd9e27778..164b3c78baff4204 100644 --- a/tools/perf/perf.c +++ b/tools/perf/perf.c @@ -558,7 +558,7 @@ int main(int argc, const char **argv) pthread__block_sigwinch(); while (1) { - int done_help; + static int done_help; run_argv(&argc, &argv); @@ -566,7 +566,7 @@ int main(int argc, const char **argv) break; if (!done_help) { - struct cmdnames main_cmds; + struct cmdnames main_cmds = { 0, }; for (unsigned int i = 0; i < ARRAY_SIZE(commands); i++) { add_cmdname(&main_cmds, ⬢[acme@toolbox perf-tools-next]$ perf raccord perf: 'raccord' is not a perf-command. See 'perf --help'. ⬢[acme@toolbox perf-tools-next]$