Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp684555pxb; Tue, 1 Feb 2022 08:19:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJy0igFzwLgycWu7FvIxBocySSJSUQ4QoRMmAbKA6dsOnDqPZnwSd2quUAo+Fnw+9UGX4FKr X-Received: by 2002:a63:512:: with SMTP id 18mr21378691pgf.432.1643732349502; Tue, 01 Feb 2022 08:19:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643732349; cv=none; d=google.com; s=arc-20160816; b=KNR4rFJg7zBav64IrhdV/C1awohQ7d6esWfRwMK/PSbO0BQXp6vIWICq/RTNr4CbuS NEJfIZnW7O/+8HHlvdwsjKsV0OwKrHF0OVA1pSrSjKyNQSiRRwaC7PDtuUI5PAoHDnd5 EFcIVDdM9u0kcGKpebLIq3j47R+CzGi1yxC+rSP8IgxGNwt78F9BF3d/PgXisxXS6ply k7ThRnZ79OrRTPWeZSqgAmocDEuygvYH+q58THWmGcbE7d1FrpZm57Ji7HxGDZseMbtk 1qzuApmhB6DzsuQeG1nImJtshd5XmeE0xtNbkn/ePNby/PBiIxsB5nhXaL3QdCGixl43 SOZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:organization:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=nZrcHo/9xsca55kg2dwsvttMj/72fEPQweHoSiu8kq4=; b=JcpDtp6cyYXKCCUIB3ZAH7kkRNKmFaXTEANLBLhoj9hMI4G2TBXym6e52WzKzeoOoq eZHVlvoXjnIVukuaqfdkRgmQ0cgMWkEz2KiMg9zse70oQxxxZ/TIIclaGjeH+Wew70Ey 6tRYzYBMo9qIzU1JoO/0M+/IpnmzIp+CxeNcW0QTTL/i1kQ5P18j6BjPCHnF49nOfYc9 FyAPfSpRnHfRBIP6/Dn9Ry1DDkC0hgbasqnG2jAXlbf3gUaZlk98Amib1DrM4wKITYWk /Q+puGqMqdaecnG2/KrUlo7ZS0xbQe7uaRTGTA+6Kjcgkw1Hh85ULnYKbsyb7LQM9ofZ 5DcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Orca9j4L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v184si13723503pgd.290.2022.02.01.08.18.54; Tue, 01 Feb 2022 08:19:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Orca9j4L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358179AbiAaKbm (ORCPT + 99 others); Mon, 31 Jan 2022 05:31:42 -0500 Received: from mga18.intel.com ([134.134.136.126]:1257 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345599AbiAaKbl (ORCPT ); Mon, 31 Jan 2022 05:31:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1643625101; x=1675161101; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=eGahUJSlFzxGqkP2PYspVj5bNJbqX3IGWEq9Q9r47kU=; b=Orca9j4LMBNhFM+ZiiDBWx4YuVIgkRGJ1a4hkXcl5gcSXfDbRn0RhXxB Zhm5ALaUEwigljxv1wWbhlc8kAHWDQm1qc5rAO1DlNvsZURmMB/ur/k9+ g09apt+hA48/9e2erz3CxWDWFGA+6Bc3WyiG5/VxHQ/gnTu2XZmvhdcu+ AWH2T58NEpimvaZnIMligktFTMR0FJ/s1yaixDJ5I7mBCRLRMwU7mGfE1 YKhyQqkPYEhsn2XdnOi9PBrdWkkS+mcD9vNGgcZLSKcmz/VFkAPPByAUk GrgsjYqfedaCf9w1LgmCNE7RdPDuf8k2EphNlQLhU1hTDa4jnE85qwUAT A==; X-IronPort-AV: E=McAfee;i="6200,9189,10243"; a="231006280" X-IronPort-AV: E=Sophos;i="5.88,330,1635231600"; d="scan'208";a="231006280" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2022 02:31:41 -0800 X-IronPort-AV: E=Sophos;i="5.88,330,1635231600"; d="scan'208";a="564934983" Received: from smile.fi.intel.com ([10.237.72.61]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2022 02:31:37 -0800 Received: from andy by smile.fi.intel.com with local (Exim 4.95) (envelope-from ) id 1nETxB-00GpRd-HC; Mon, 31 Jan 2022 12:30:33 +0200 Date: Mon, 31 Jan 2022 12:30:33 +0200 From: Andy Shevchenko To: David Rientjes Cc: Waiman Long , Johannes Weiner , Michal Hocko , Vladimir Davydov , Andrew Morton , Petr Mladek , Steven Rostedt , Sergey Senozhatsky , Rasmus Villemoes , linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Ira Weiny , Rafael Aquini Subject: Re: [PATCH v2 1/3] lib/vsprintf: Avoid redundant work with 0 size Message-ID: References: <20220129205315.478628-1-longman@redhat.com> <20220129205315.478628-2-longman@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jan 31, 2022 at 12:25:09PM +0200, Andy Shevchenko wrote: > On Sun, Jan 30, 2022 at 12:49:37PM -0800, David Rientjes wrote: > > On Sat, 29 Jan 2022, Waiman Long wrote: > > > > > For *scnprintf(), vsnprintf() is always called even if the input size is > > > 0. That is a waste of time, so just return 0 in this case. > > Why do you think it's not legit? I have to elaborate. For *nprintf() the size=0 is quite useful to have. For *cnprintf() the size=0 makes less sense, but, if we read `man snprintf()`: The functions snprintf() and vsnprintf() do not write more than size bytes (including the terminating null byte ('\0')). If the output was truncated due to this limit, then the return value is the number of characters (excluding the terminating null byte) which would have been written to the final string if enough space had been available. Thus, a return value of size or more means that the output was truncated. (See also below under NOTES.) If an output error is encountered, a negative value is returned. Note the last sentence there. You need to answer to it in the commit message why your change is okay and it will show that you thought through all possible scenarios. -- With Best Regards, Andy Shevchenko