Received: by 2002:a05:6a10:6d25:0:0:0:0 with SMTP id gq37csp749579pxb; Sat, 11 Sep 2021 20:47:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwNs47aFb8h+k73Nw2x6Mv3v5M4tPg0CpoSIeCvEjd+A0q0MoladVKJN4Hg2PA9rOTdx/AH X-Received: by 2002:a17:906:b00c:: with SMTP id v12mr5710701ejy.222.1631418459365; Sat, 11 Sep 2021 20:47:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631418459; cv=none; d=google.com; s=arc-20160816; b=p/5WG66qJ3Wq39quN0or0QBnxc01wbHRiylkfkce47TvA1UNQPuXFaLAQ3IaT8D+jB gn0Y/c3wBr70k6fsYv5+C3jJMldbSWaJxaGqspIcdDJCQ9+G3b2oL4riDyseBYko+2CK wZnqZeF2o0I6hqwKIkE1epP7TkK6DDd1ai1IeUyEK0V9loZYytmQaoqK9TTQKI25hxjm BElG3Ng+qP8W9JFY9siBwxk9Kdt+UqA8MOiT6Guznp4CBTM8xDa0a6pxadcKkeQ4agOy 6RLNSqIGAXBGAHZ+rSZ5+FaeadVKldtHerFo7fnqdQKMDBuY42lIIk5/bvRMdt1CmQMI iBbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :mime-version:user-agent:date:message-id:subject:from:to:reply-to; bh=PnSlkqQNXjH2yYLdTrDyXhm1QsHDolmo047jwEO5+Q0=; b=qDaRpfOLykicdK0uJ+nn76LP9p7jT+1nFrX0v45rE8KjJIDEOnPjJ+ryjjgwtmLYJW tzkTuvqsCLCrRM6AKBui3Reos6J8N0jVJ4C4og3ufk2Zd5JedWLNPf4C8r/1PRZWZMev 69O/WXKXLEIXSE4eJGl/qRYUBoAxzQ7/nd4zu50YV1FmPuAq5cOnZmb3shULlJEGyUWk 3yc0xh9ulYheyeHhYE+0lpqhsvH4mXlK47uEgd4PqG+wYgtkBRJZbxV6GSYRI3pRvm2M uZXzyKxj1U20/xaDtsZl8G1zk3pJkbpmxHhGCQoTAvYWZ7KaykQ7438oGajJc2N/Udw8 fYRQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rn4si3759128ejb.248.2021.09.11.20.46.48; Sat, 11 Sep 2021 20:47:39 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232406AbhILDno (ORCPT + 99 others); Sat, 11 Sep 2021 23:43:44 -0400 Received: from mail-1.ca.inter.net ([208.85.220.69]:37263 "EHLO mail-1.ca.inter.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231939AbhILDno (ORCPT ); Sat, 11 Sep 2021 23:43:44 -0400 X-Greylist: delayed 389 seconds by postgrey-1.27 at vger.kernel.org; Sat, 11 Sep 2021 23:43:44 EDT Received: from mp-mx11.ca.inter.net (mp-mx11.ca.inter.net [208.85.217.19]) by mail-1.ca.inter.net (Postfix) with ESMTP id 27BBB2EA0BD for ; Sat, 11 Sep 2021 23:36:01 -0400 (EDT) Received: from mail-1.ca.inter.net ([208.85.220.69]) by mp-mx11.ca.inter.net (mp-mx11.ca.inter.net [208.85.217.19]) (amavisd-new, port 10024) with ESMTP id IU6-e5sSaosa for ; Sat, 11 Sep 2021 23:36:00 -0400 (EDT) Received: from [192.168.48.23] (host-45-78-207-107.dyn.295.ca [45.78.207.107]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: dgilbert@interlog.com) by mail-1.ca.inter.net (Postfix) with ESMTPSA id C6E802EA01E for ; Sat, 11 Sep 2021 23:36:00 -0400 (EDT) Reply-To: dgilbert@interlog.com To: LKML From: Douglas Gilbert Subject: how many memset(,0,) calls in kernel ? Message-ID: <1c4a94df-fc2f-1bb2-8bce-2d71f9f1f5df@interlog.com> Date: Sat, 11 Sep 2021 23:36:07 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-CA Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Here is a pretty rough estimate: $ find . -name '*.c' -exec fgrep "memset(" {} \; > memset_in_kern.txt $ cat memset_in_kern.txt | wc -l 20159 Some of those are in comments, EXPORTs, etc, but the vast majority are in code. Plus there will be memset()s in header files not counted by that find. Checking in that output file I see: $ grep ", 0," memset_in_kern.txt | wc -l 18107 $ grep ", 0" memset_in_kern.txt | wc -l 19349 $ grep ", 0x" memset_in_kern.txt | wc -l 1210 $ grep ", 0x01" memset_in_kern.txt | wc -l 3 $ grep ", 0x0," memset_in_kern.txt | wc -l 199 $ grep ",0," memset_in_kern.txt | wc -l 72 $ grep "= memset" memset_in_kern.txt | wc -l 11 It seems only 11 invocations use the return value of memset() . If the BSD flavours of Unix had not given us: void bzero(void *s, size_t n); would the Linux kernel have something similar in common usage (e.g. memzero() or mem0() ), that was less wasteful than the standard: void *memset(void *s, int c, size_t n); in the extremely common case where c=0 and the return value is not used? Doug Gilbert