Message ID | 20231228233113.5218-1-rdunlap@infradead.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-12877-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:6f82:b0:100:9c79:88ff with SMTP id tb2csp2283560dyb; Thu, 28 Dec 2023 15:31:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IHVP3SjcwO/f2nNwLlsMYlNzfJbe7fxwUWMr225FK/KNDFCIaURMIshGyuPGTw5KC72B8uL X-Received: by 2002:ac8:5ad0:0:b0:427:8e6e:c4ea with SMTP id d16-20020ac85ad0000000b004278e6ec4eamr15504316qtd.39.1703806297913; Thu, 28 Dec 2023 15:31:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703806297; cv=none; d=google.com; s=arc-20160816; b=Mx3vlwvlpoCqwpLH3pS2iDOFRfz4ZHAxG7WQv7YQYfHXImFiokMJGby+jL35wk9xt7 PacuID6d+9CZd/rlw20XMPs/xreTwfaZHl/5nRKxuK8d8DNhbVhHdBrx4c7DwxA6h7Lk 56e8wxmyNrRwYMA5T4LStKE0+e3JhIJVZYntTs9ZkN0n2C5si5ghtU26PYl2t4dgPsa+ GMc15jnPGSB0xhB5Lehp9MBMfs8GZtYIdH1pCImTIim9sWmt2tQ/kNGm/AXnivYLeWK2 wtTuvvvDKkRc8V+sax7nZJcPXTtPtsSDwO6F06JJ2VGuVIXyGphRKjENNkPZrWdc7VpD 4Vzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=DV0TUwiNGkqdrGdcaqnkKo+qqCO+RzCFO3exVU5U+ic=; fh=sQ8y8EJ21vM4iheFS0VLoIXYO9kuI8qNGwJ91uZK9NI=; b=qpExnLI1RqgzYuN1WViUM+VXIf7Ng2cB7g+D634xqcfd8ejUmg+ShRWMol+uQty8YE L5Qsnx82lIREfDc7DKRGy6fnd+nLkz4Q9/bBDbU8I+XMbPc9ar34bQ4Oczx4lVgFyNmS 1SG+XPu/3Ubo0N97mhX4gp237B5yyCcli2IyGvfTGhi5yBLQRFFGAPZ49mxM+SeLTBOw iNsfNHtne7YaSMN7L+ZbXBF8+WhbiGbEZp2KTD8KKqdh/ryGGhvVhpHi8VqTFVs/IQUH LB+1OZ5P3vk+InEGXejGDbBFSXkHMd3OCDgECvoClrFquTXmJ9yVhtSyKfi93Wt62Aml XG2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=2Pmq+0f+; spf=pass (google.com: domain of linux-kernel+bounces-12877-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-12877-ouuuleilei=gmail.com@vger.kernel.org" Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id m13-20020a05622a118d00b004236ecb193dsi18342598qtk.688.2023.12.28.15.31.37 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Dec 2023 15:31:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-12877-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=2Pmq+0f+; spf=pass (google.com: domain of linux-kernel+bounces-12877-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-12877-ouuuleilei=gmail.com@vger.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 ny.mirrors.kernel.org (Postfix) with ESMTPS id B1DB71C21A44 for <ouuuleilei@gmail.com>; Thu, 28 Dec 2023 23:31:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3085210A2C; Thu, 28 Dec 2023 23:31:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="2Pmq+0f+" X-Original-To: linux-kernel@vger.kernel.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 3A42710A02; Thu, 28 Dec 2023 23:31:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=DV0TUwiNGkqdrGdcaqnkKo+qqCO+RzCFO3exVU5U+ic=; b=2Pmq+0f+xVFdYSMYlYHPZHwI0E lL3sG+ESe9zKAjnNAQkrNMkV5+BNLsrIVtbzXKyimgF5zp3ylO4417sKaa/UBmaOhKyLQ4HwBqHHx M0Eym9GT9UA7bb9CzF29OaIb4PpbI42xLfm1n0N/45aIPVC2yOcwa6dGe+GOoyoyFJe2r50K1AJYG 9Aq5RbdocUcfCzxxCMX/hbbPKW6TtN9/lllDWyKmv65P9nQhq4aGZXe4xWpc3SSCkEOKgCjuXPXkf ULvLaFkFw4wgz8XoD3Hj8k6DPktPK23Xkkv8XFxredHuslN+yYM1ASsWzCAjYh3e6d4205iuG401E 3QTjFkQw==; Received: from [50.53.46.231] (helo=bombadil.infradead.org) by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1rIzqM-00HXJZ-1f; Thu, 28 Dec 2023 23:31:14 +0000 From: Randy Dunlap <rdunlap@infradead.org> To: linux-kernel@vger.kernel.org Cc: Randy Dunlap <rdunlap@infradead.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jonathan Corbet <corbet@lwn.net>, linux-doc@vger.kernel.org, Mauro Carvalho Chehab <mchehab@kernel.org> Subject: [PATCH] scripts/get_abi.pl: ignore some temp files Date: Thu, 28 Dec 2023 15:31:13 -0800 Message-ID: <20231228233113.5218-1-rdunlap@infradead.org> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1786570392383535874 X-GMAIL-MSGID: 1786570392383535874 |
Series |
scripts/get_abi.pl: ignore some temp files
|
|
Commit Message
Randy Dunlap
Dec. 28, 2023, 11:31 p.m. UTC
When there are filenames of the form ".orig" or ".rej" in the Documenatation/ABI/ subdirectories, there can be confusing or erroneous output generated. Example: the file Documenation/ABI/testing/sysfs-bus-papr-pmem.orig causes this warning message: Documentation/ABI/testing/sysfs-bus-papr-pmem:2: WARNING: unknown document: '/powerpc/papr_hcalls' Prevent this by skipping over filenames that may be created by patch/diff tools etc. Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: linux-doc@vger.kernel.org Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- scripts/get_abi.pl | 1 + 1 file changed, 1 insertion(+)
Comments
Randy Dunlap <rdunlap@infradead.org> writes: > When there are filenames of the form ".orig" or ".rej" in > the Documenatation/ABI/ subdirectories, there can be confusing or > erroneous output generated. Example: the file > Documenation/ABI/testing/sysfs-bus-papr-pmem.orig causes this > warning message: > > Documentation/ABI/testing/sysfs-bus-papr-pmem:2: WARNING: unknown document: '/powerpc/papr_hcalls' > > Prevent this by skipping over filenames that may be created by > patch/diff tools etc. > > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: Jonathan Corbet <corbet@lwn.net> > Cc: linux-doc@vger.kernel.org > Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > scripts/get_abi.pl | 1 + > 1 file changed, 1 insertion(+) > > diff -- a/scripts/get_abi.pl b/scripts/get_abi.pl > --- a/scripts/get_abi.pl > +++ b/scripts/get_abi.pl > @@ -93,6 +93,7 @@ sub parse_abi { > return if ($mode & S_IFDIR); > return if ($file =~ m,/README,); > return if ($file =~ m,/\.,); > + return if ($file =~ m,\.(rej|org|orig|bak)$,); Applied, thanks. It would have been nice to create all of those files with a .abi extension so we didn't have to do this kind of blocklisting, but so be it. Should we exclude emacs-style ~ files too? jon
On 1/3/24 13:03, Jonathan Corbet wrote: > Randy Dunlap <rdunlap@infradead.org> writes: > >> When there are filenames of the form ".orig" or ".rej" in >> the Documenatation/ABI/ subdirectories, there can be confusing or >> erroneous output generated. Example: the file >> Documenation/ABI/testing/sysfs-bus-papr-pmem.orig causes this >> warning message: >> >> Documentation/ABI/testing/sysfs-bus-papr-pmem:2: WARNING: unknown document: '/powerpc/papr_hcalls' >> >> Prevent this by skipping over filenames that may be created by >> patch/diff tools etc. >> >> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> >> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> >> Cc: Jonathan Corbet <corbet@lwn.net> >> Cc: linux-doc@vger.kernel.org >> Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org> >> --- >> scripts/get_abi.pl | 1 + >> 1 file changed, 1 insertion(+) >> >> diff -- a/scripts/get_abi.pl b/scripts/get_abi.pl >> --- a/scripts/get_abi.pl >> +++ b/scripts/get_abi.pl >> @@ -93,6 +93,7 @@ sub parse_abi { >> return if ($mode & S_IFDIR); >> return if ($file =~ m,/README,); >> return if ($file =~ m,/\.,); >> + return if ($file =~ m,\.(rej|org|orig|bak)$,); > > Applied, thanks. > > It would have been nice to create all of those files with a .abi > extension so we didn't have to do this kind of blocklisting, but so be > it. > > Should we exclude emacs-style ~ files too? Hm, probably. Someday.
On Wed, 03 Jan 2024, Jonathan Corbet <corbet@lwn.net> wrote: > It would have been nice to create all of those files with a .abi > extension so we didn't have to do this kind of blocklisting, but so be > it. Alternatively, we could switch to yaml instead of using another homebrew format with another homebrew parser, and rename them .yaml. BR, Jani.
Jani Nikula <jani.nikula@linux.intel.com> writes: > On Wed, 03 Jan 2024, Jonathan Corbet <corbet@lwn.net> wrote: >> It would have been nice to create all of those files with a .abi >> extension so we didn't have to do this kind of blocklisting, but so be >> it. > > Alternatively, we could switch to yaml instead of using another homebrew > format with another homebrew parser, and rename them .yaml. But ... we didn't invent that! :) That is, of course, a better idea. It would be a good project for somebody. Thanks, jon
Jonathan Corbet <corbet@lwn.net> writes: > Jani Nikula <jani.nikula@linux.intel.com> writes: > >> On Wed, 03 Jan 2024, Jonathan Corbet <corbet@lwn.net> wrote: >>> It would have been nice to create all of those files with a .abi >>> extension so we didn't have to do this kind of blocklisting, but so be >>> it. >> >> Alternatively, we could switch to yaml instead of using another homebrew >> format with another homebrew parser, and rename them .yaml. > > But ... we didn't invent that! :) > > That is, of course, a better idea. It would be a good project for > somebody. Thinking about this a bit further ... is there anything other than get_abi.pl that parses these files? If so, that would, of course, complicate a switch to YAML. If not, though ... and if we're changing the format ... maybe we should just turn them into RST and do away with the extra processing step entirely? jon
Em Thu, 04 Jan 2024 08:57:47 -0700 Jonathan Corbet <corbet@lwn.net> escreveu: > Jonathan Corbet <corbet@lwn.net> writes: > > > Jani Nikula <jani.nikula@linux.intel.com> writes: > > > >> On Wed, 03 Jan 2024, Jonathan Corbet <corbet@lwn.net> wrote: > >>> It would have been nice to create all of those files with a .abi > >>> extension so we didn't have to do this kind of blocklisting, but so be > >>> it. > >> > >> Alternatively, we could switch to yaml instead of using another homebrew > >> format with another homebrew parser, and rename them .yaml. > > > > But ... we didn't invent that! :) > > > > That is, of course, a better idea. It would be a good project for > > somebody. > > Thinking about this a bit further ... is there anything other than > get_abi.pl that parses these files? AFAIKT, only get_abi.pl parses them inside the Kernel. > If so, that would, of course, > complicate a switch to YAML. > > If not, though ... and if we're changing the format ... maybe we should > just turn them into RST and do away with the extra processing step > entirely? I don't think it is wise to just convert it to ReST. See, the script has 4 modes of operation controlled via command line argument[1]: search SEARCH_REGEX - search for SEARCH_REGEX inside ABI rest - output the ABI in ReST markup language validate - validate the ABI contents undefined - existing symbols at the system that aren't defined at Documentation/ABI [1] see: ./get_abi.pl --man The "rest" command line is used when building the docs. There are also "search" used if one wants to get the documentation of a particular sysfs symbol: $ scripts/get_abi.pl search nonfatal_errors /sys/bus/platform/devices/dfl-fme.0/errors/nonfatal_errors ---------------------------------------------------------- Kernel version: 5.4 Date: August 2019 Contact: Wu Hao <hao.wu@intel.com> Defined on file(s): Documentation/ABI/testing/sysfs-platform-dfl-fme Description: Read-only. It returns non-fatal errors detected. Which is useful if a system admin wants to search for some specific uABI symbol. The "validate" is similar to the "quiet" mode of kernel-doc: it just checks if all entries parse OK. If everything is OK, it prints nothing. There's also "undefined" (my favorite one when I'm checking for doc problems on uABI), meaning to detect documentation gaps: $ scripts/get_abi.pl undefined --search-string drm/card1|perl -ne 'print "\t$_"' Reading /sys directory contents...done. Converting ABI What fields into regexes...done. 0:37: processing sysfs files... 46%: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10.4/1-10.4.2/1-10.4.2:1.2/0003:046D:C52B.0003/0003:046D:406A.0004/input/input31/input31::kana/power/aut0:47: processing sysfs files... done /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/.defaults/rps_max_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt_RP1_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-3/connector_id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/.defaults/rps_min_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt_min_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_max_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt_RPn_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_cur_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/f889f8cc-4c93-4ac8-b75f-551c0b9b87f7/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt_max_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt_act_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt_boost_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/error not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_min_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt_cur_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/punit_req_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt_RP0_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_up_threshold_pct not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_act_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rc6_enable not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_boost_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_RP0_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_RPn_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_RP1_freq_mhz not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rc6_residency_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/rps_down_threshold_pct not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/.defaults/rps_up_threshold_pct not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-3/edid not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/gt/gt0/.defaults/rps_down_threshold_pct not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-3/modes not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-3/enabled not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-3/dpms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-3/status not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/398a4268-ef6f-4ffc-b55f-3c7b5363ce61/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/12994724-3a5a-4303-bb3c-ba0175d2c200/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/3addf8ef-8e9b-40f5-a448-3dbb5d5128b0/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/6c66fe6e-2988-454a-bfae-7fca3bbcbec2/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/6d344efd-8e9e-42d4-a29e-1011c29f82c2/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/4af0400a-81c3-47db-a6b6-deddbd75680e/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/9eaf384d-8f53-41b8-a71d-108308780fbc/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/f9954679-a055-4862-9f57-9d66e3ebf81c/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/fb149d66-fad2-4230-b0d7-4d689b9116d3/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/d7a17a3a-ca71-40d2-a919-ace80d50633f/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/e3b386ae-c195-47d5-af29-8a1afa0ae2bf/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/57b59202-172b-477a-87de-33f85572c589/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/0e22f995-79ca-4f67-83ab-e9d9772488d8/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/99c1a40e-a090-4354-86e3-4d068bb1917e/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/cd4b577b-073a-423f-a948-e198dd818c71/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/4032137b-8dcc-4f3f-912d-c0bb14a123bc/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/a00cbdf2-eabd-4240-9a89-86e2ac1ca1e4/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/b49aa434-4958-4d98-9e6f-443ff27ca74d/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/aa7a3fb9-22fb-43ff-a32d-0ab6c13bbd16/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/metrics/4ed5e27e-fd1a-4f11-ad8f-9374e128c697/id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1/connector_id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1/edid not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1/enabled not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1/modes not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1/dpms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1/status not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/edid not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/status not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/enabled not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/dpms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/connector_id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/modes not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/i2c-7/new_device not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/power/rc6_residency_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/drm_dp_aux1/name not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/i2c-7/name not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/.defaults/heartbeat_interval_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/i2c-7/delete_device not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/power/rc6_enable not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/.defaults/heartbeat_interval_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/heartbeat_interval_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/stop_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/max_busywait_duration_ns not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/instance not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/.defaults/heartbeat_interval_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/.defaults/heartbeat_interval_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/capabilities not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/.defaults/stop_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/known_capabilities not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/timeslice_duration_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/known_capabilities not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/class not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/preempt_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/mmio_base not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/name not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/.defaults/max_busywait_duration_ns not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/heartbeat_interval_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/.defaults/timeslice_duration_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/stop_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vecs0/.defaults/preempt_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/max_busywait_duration_ns not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/capabilities not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/instance not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/.defaults/stop_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/known_capabilities not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/timeslice_duration_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/class not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/preempt_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/mmio_base not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/name not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/.defaults/max_busywait_duration_ns not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/heartbeat_interval_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/.defaults/timeslice_duration_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/stop_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/vcs0/.defaults/preempt_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/max_busywait_duration_ns not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/capabilities not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/instance not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/.defaults/stop_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/known_capabilities not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/timeslice_duration_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/class not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/preempt_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/mmio_base not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/name not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/.defaults/max_busywait_duration_ns not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/heartbeat_interval_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/.defaults/timeslice_duration_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/stop_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/bcs0/.defaults/preempt_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/max_busywait_duration_ns not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/capabilities not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/instance not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/.defaults/stop_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/timeslice_duration_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/class not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/preempt_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/mmio_base not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/name not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2/edid not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/.defaults/max_busywait_duration_ns not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2/connector_id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/.defaults/timeslice_duration_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/engine/rcs0/.defaults/preempt_timeout_ms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2/enabled not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2/modes not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2/dpms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2/status not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/edid not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/status not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/enabled not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/i2c-6/new_device not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/dpms not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/connector_id not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/modes not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/i2c-6/name not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/i2c-6/delete_device not found. /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/drm_dp_aux0/name not found. It helps a lot to check if the uABI entries are properly pointing to the right sysfs nodes, being really useful when someone is documenting the uABI and to check for gaps. My original goal were to run it at build time, but currently there are too many gaps for it to be useful: $ scripts/get_abi.pl undefined|wc -l Reading /sys directory contents...done. Converting ABI What fields into regexes...done. 5:08: processing sysfs files... 46%: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10.4/1-10.4.2/1-10.4.2:1.2/0003:046D:C52B.0003/0003:046D:406A.0004/hidraw/hidraw1/power/runtime_suspende10:32: processing sysfs files... done 4910 (this is on my laptop - Running it on a server reports 50k-100k missing symbols) It would be ok to convert ABI to use YAML or ReST if we can ensure that we'll keep supporting symbol search and undefined uAPI detection. Yet, IMO, using ReST directly for ABI could be problematic if people don't add uABI symbols on a "database-like" parseable series of files. In any case, if we convert it to YAML or ReST, we can modify the ABI parser and/or scripts/checkpatch.pl to validate if: - the uAPI is properly documented with the expected fields, as described under Documentation/ABI/README; - there are uAPI gaps; - there won't be duplicated documentation for the same uAPI symbol. Thanks, Mauro
diff -- a/scripts/get_abi.pl b/scripts/get_abi.pl --- a/scripts/get_abi.pl +++ b/scripts/get_abi.pl @@ -93,6 +93,7 @@ sub parse_abi { return if ($mode & S_IFDIR); return if ($file =~ m,/README,); return if ($file =~ m,/\.,); + return if ($file =~ m,\.(rej|org|orig|bak)$,); my $name = $file; $name =~ s,.*/,,;