Received: by 2002:ab2:3c46:0:b0:1f5:f2ab:c469 with SMTP id x6csp265406lqf; Fri, 26 Apr 2024 06:16:53 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXCltB8UVIvtsubJZWgntvLYUZ3kUxPQpQ3SPKOa3t355Y9R7SRHAFbWeZ4mkBXhZlSf1K6OX5Q4bkc3b97PFUb+nsBZHRU7eYo79Lvjw== X-Google-Smtp-Source: AGHT+IFNtsrk2wV9uj54exkF9qUR1+WTzMLtCTljZnUkcdkLTUIgC/D2sjktutBFxSkhN2pjKaiE X-Received: by 2002:a05:6a20:2589:b0:1a7:bb6d:6589 with SMTP id k9-20020a056a20258900b001a7bb6d6589mr3464549pzd.29.1714137413608; Fri, 26 Apr 2024 06:16:53 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714137413; cv=pass; d=google.com; s=arc-20160816; b=Z5y1P9qYKWD1MlDjqUjc9S+UZrt108LM8PlwDtYEgxdrRxLG2XiAQlJMAfd3MJPYcz E9kvA5mtnAqM22Qmapd2UA5Bb9/ms1D85RQdh+vUZIK3x42S1eCnmkUMFRI21qKIAJG2 Fvik+aoF23BiWh+zJwMJrrpf4RuYo6GoR7cNo7LnTBWcdKaVpvo+cxXTtXiZLBSK5dJW pUJO0Xylld2Z6zOCtLohQR32g6mh9RwkX60GEhFZWHLNVvxDntavYvo74jZSSkH0WZIA R1lgTgbuMBDKssAyea9A/wgwb1vfR5E6eoobgVo1E8dyAU2yIFa0wdrVRvgpfkSUHm3n jqMw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=0hdw8p6oR6g7iZSW+MMBq+xwfhBLVTPmBekquhPWSQ8=; fh=QqyHMIxqHa8NCuJSyCCCpE0LLvSKmJw+oUNmfij34Ok=; b=QkgHo5nuiPXAIc5E/1rJ/0LcIpT+ggEHqEIFJTjfT8T0iak/rJ+tOdn6XsKKHrbUza c1kfIowUwj9fADVbKBWfKE+e23rxtsMwqZy3dSFca6dL4O/vIxGAqS/FEhF7EuyFGtTO VkrywrKO7HMoXYLdoc04UlOM9kf1A9EozyrffclTuzjEUEpxwLcr66NsH73Pq4TqiYCL wGU06JM3ilKYthmjXgEtLTM0E5pOVgEgqF7knz2CqhDSfy86gLl6aXc/P6j5UsYZcS6G 8H016nsm63oO+zfBZdg451ONIEqgRAnep+jobRplQ14Jf1ClFbpLlR8y2VcH9SRrh9yr 7eBw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=FinMnR3r; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-nfs+bounces-3038-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-nfs+bounces-3038-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id cj19-20020a056a00299300b006ed5655a03csi15484944pfb.125.2024.04.26.06.16.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Apr 2024 06:16:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs+bounces-3038-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=FinMnR3r; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-nfs+bounces-3038-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-nfs+bounces-3038-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id A4DA3281967 for ; Fri, 26 Apr 2024 13:16:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8FA5C146A90; Fri, 26 Apr 2024 13:16:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FinMnR3r" X-Original-To: linux-nfs@vger.kernel.org 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 6C1D3145B21 for ; Fri, 26 Apr 2024 13:16:51 +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=1714137411; cv=none; b=YD3s7f/YptZ77LXA6rk6jahxbN719p3Lfc9auGO91egmCqG52DIcs3dyqZ0avyZ1mrqBiU412P1F68KhW2gVpb6Aj+poLAm9A8roqyLXdIZeDUBBaVhxBo9dDOE89hf2nS9CgKzjk3N1QQwNz+pPYjG3aM1DS5JtppTSQTRjfH0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714137411; c=relaxed/simple; bh=+d4jEX6nAxK9SvpY2RMD67vh6hoaUz7du+03lh8VLZ0=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=o/gPIWaqKDyZ9aYtcVbhrbh2Pz6rH5++Ql5XCRIeNZ2ITkpil//dASIX/1RqCV52BtcRQJBsgRa7gVXUOr5F/1lZv2WSkaCAIwqnpEQdiwIhdHmx/XtoNNuZo5CkpAIcTT0PZU7dA2kBg3Od8uAG7ZMkx2lD9J2E0Fsp1BsXUAk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FinMnR3r; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id F3C12C32781 for ; Fri, 26 Apr 2024 13:16:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1714137411; bh=+d4jEX6nAxK9SvpY2RMD67vh6hoaUz7du+03lh8VLZ0=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=FinMnR3rKZkb7McogFZRDKtLUWkcDU8f+lQ7lzVLio1rlK05v4V1jqgaTZI93tFVq HcxcGs8lYJB21uoV48d8BBugqqhMr272AYV+t+SJ7OUij1rKXSL8FrzVVGbybaAokk ZhXZ7ssvsN49ISvdTaieFxYSD1cVvPhotkGcDjCz8973Ik0ldtAjviacIWEByz6EnV ZbuGdi6laddZj6PR5871RoUndQEFDgW/lhFi7AmARF3Gt09GjLl5oge9euHiggAtmo QDD12JHvgg7D2d3BmVxu4wXYfBCURUJcZVWorl9FByTeArNuLDyjb0LIGRb8cC+yjc dB2wICXwHjK/g== Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-434c3d21450so10322871cf.0 for ; Fri, 26 Apr 2024 06:16:50 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCVnapBt5AxxGFMNB9YT6WQW1W/oDq1N90BdreOY83ldfBfmGcQJ60f/4wBuDhFfU2WusFok3xxxS4ys8K2n1H8Rk8voIoQLYhK0 X-Gm-Message-State: AOJu0YxjWRv5oN0YdISuP3IaQr0oVemEu12RFfF8ovPEc4Pv3JfDwgQu 0YL6ynuOpnRk8D2oi5IkCuU+NoAk95MlcBGUJerwBiLDoC4SLXfJjG4S4U15ayhdxyuamaF7gwY dkZLeaZso2dHLYUaE3VBpZXjY4w0= X-Received: by 2002:ac8:5a91:0:b0:43a:904d:8176 with SMTP id c17-20020ac85a91000000b0043a904d8176mr226536qtc.0.1714137410306; Fri, 26 Apr 2024 06:16:50 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240424104112.1053-1-chenhx.fnst@fujitsu.com> <76BBD76E-9CDC-4B97-81E0-72839DF63498@redhat.com> In-Reply-To: <76BBD76E-9CDC-4B97-81E0-72839DF63498@redhat.com> From: Anna Schumaker Date: Fri, 26 Apr 2024 09:16:34 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] SUNRPC: rpc_show_tasks: add an empty list check To: Benjamin Coddington Cc: Chen Hanxiao , Trond Myklebust , Chuck Lever , Jeff Layton , Neil Brown , Olga Kornievskaia , Dai Ngo , Tom Talpey , linux-nfs@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Apr 24, 2024 at 4:07=E2=80=AFPM Benjamin Coddington wrote: > > On 24 Apr 2024, at 6:41, Chen Hanxiao wrote: > > > add an empty list check, so we can get rid of some useless > > list iterate or spin locks. > > > > Signed-off-by: Chen Hanxiao > > --- > > net/sunrpc/clnt.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c > > index 28f3749f6dc6..749317587bb3 100644 > > --- a/net/sunrpc/clnt.c > > +++ b/net/sunrpc/clnt.c > > @@ -3345,8 +3345,13 @@ void rpc_show_tasks(struct net *net) > > int header =3D 0; > > struct sunrpc_net *sn =3D net_generic(net, sunrpc_net_id); > > > > + if (list_empty(&sn->all_clients)) > > + return; > > + > > spin_lock(&sn->rpc_client_lock); > > list_for_each_entry(clnt, &sn->all_clients, cl_clients) { > > + if (list_empty(&clnt->cl_tasks)) > > + continue; > > spin_lock(&clnt->cl_lock); > > list_for_each_entry(task, &clnt->cl_tasks, tk_task) { > > if (!header) { > > -- > > 2.39.1 > > > Why optimize this? Can you show the locks are contended? Its probably > fine, but using list_empty outside of the lock has a bad smell to me. I looked into list_empty(), and it's using READ_ONCE() internally so it should be okay to use outside of the lock. Having said that, this function is only used by sunrpc/sysctl.c, so it's not a path I would think needs to be heavily optimized. Anna > > Ben >