linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] kselftest: dt: Stop relying on dirname to improve performance
@ 2024-01-22 14:29 Nícolas F. R. A. Prado
  2024-01-22 15:40 ` Rob Herring
  0 siblings, 1 reply; 3+ messages in thread
From: Nícolas F. R. A. Prado @ 2024-01-22 14:29 UTC (permalink / raw)
  To: Rob Herring, Shuah Khan
  Cc: Frank Rowand, devicetree, linux-kselftest, linux-kernel, kernel,
	Mark Brown, Nícolas F. R. A. Prado

When walking directory trees, instead of looking for specific files and
running dirname to get the parent folder, traverse all folders and
ignore the ones not containing the desired files. This avoids the need
to call dirname inside the loop, which drastically decreases run time:
Running locally on a mt8192-asurada-spherion, which reports 160 test
cases, has gone from 5.5s to 2.9s, while running remotely with an
nfsroot has gone from 13.5s to 5.5s.

This change has a side-effect, which is that the root DT node now
also shows in the output, even though it isn't expected to bind to a
driver. However there shouldn't be a matching driver for the board
compatible, so the end result will be just an extra skipped test:

ok 1 / # SKIP

Reported-by: Mark Brown <broonie@kernel.org>
Closes: https://lore.kernel.org/all/310391e8-fdf2-4c2f-a680-7744eb685177@sirena.org.uk
Fixes: 14571ab1ad21 ("kselftest: Add new test for detecting unprobed Devicetree devices")
Tested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
Changes in v2:
- Tweaked commit message
- Added trailer tags
- Rebased on 6.8-rc1
---
 tools/testing/selftests/dt/test_unprobed_devices.sh | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/tools/testing/selftests/dt/test_unprobed_devices.sh b/tools/testing/selftests/dt/test_unprobed_devices.sh
index b07af2a4c4de..7fae90293a9d 100755
--- a/tools/testing/selftests/dt/test_unprobed_devices.sh
+++ b/tools/testing/selftests/dt/test_unprobed_devices.sh
@@ -33,8 +33,8 @@ if [[ ! -d "${PDT}" ]]; then
 fi
 
 nodes_compatible=$(
-	for node_compat in $(find ${PDT} -name compatible); do
-		node=$(dirname "${node_compat}")
+	for node in $(find ${PDT} -type d); do
+		[ ! -f "${node}"/compatible ] && continue
 		# Check if node is available
 		if [[ -e "${node}"/status ]]; then
 			status=$(tr -d '\000' < "${node}"/status)
@@ -46,10 +46,11 @@ nodes_compatible=$(
 
 nodes_dev_bound=$(
 	IFS=$'\n'
-	for uevent in $(find /sys/devices -name uevent); do
-		if [[ -d "$(dirname "${uevent}")"/driver ]]; then
-			grep '^OF_FULLNAME=' "${uevent}" | sed -e 's|OF_FULLNAME=||'
-		fi
+	for dev_dir in $(find /sys/devices -type d); do
+		[ ! -f "${dev_dir}"/uevent ] && continue
+		[ ! -d "${dev_dir}"/driver ] && continue
+
+		grep '^OF_FULLNAME=' "${dev_dir}"/uevent | sed -e 's|OF_FULLNAME=||'
 	done
 	)
 

---
base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d
change-id: 20240122-dt-kselftest-dirname-perf-fix-7dc421e6dfb0

Best regards,
-- 
Nícolas F. R. A. Prado <nfraprado@collabora.com>


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] kselftest: dt: Stop relying on dirname to improve performance
  2024-01-22 14:29 [PATCH v2] kselftest: dt: Stop relying on dirname to improve performance Nícolas F. R. A. Prado
@ 2024-01-22 15:40 ` Rob Herring
  2024-01-29 23:00   ` Mark Brown
  0 siblings, 1 reply; 3+ messages in thread
From: Rob Herring @ 2024-01-22 15:40 UTC (permalink / raw)
  To: Nícolas F. R. A. Prado
  Cc: Shuah Khan, Frank Rowand, devicetree, linux-kselftest,
	linux-kernel, kernel, Mark Brown

On Mon, Jan 22, 2024 at 11:29:18AM -0300, Nícolas F. R. A. Prado wrote:
> When walking directory trees, instead of looking for specific files and
> running dirname to get the parent folder, traverse all folders and
> ignore the ones not containing the desired files. This avoids the need
> to call dirname inside the loop, which drastically decreases run time:
> Running locally on a mt8192-asurada-spherion, which reports 160 test
> cases, has gone from 5.5s to 2.9s, while running remotely with an
> nfsroot has gone from 13.5s to 5.5s.
> 
> This change has a side-effect, which is that the root DT node now
> also shows in the output, even though it isn't expected to bind to a
> driver. However there shouldn't be a matching driver for the board
> compatible, so the end result will be just an extra skipped test:
> 
> ok 1 / # SKIP
> 
> Reported-by: Mark Brown <broonie@kernel.org>
> Closes: https://lore.kernel.org/all/310391e8-fdf2-4c2f-a680-7744eb685177@sirena.org.uk
> Fixes: 14571ab1ad21 ("kselftest: Add new test for detecting unprobed Devicetree devices")
> Tested-by: Mark Brown <broonie@kernel.org>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> ---
> Changes in v2:
> - Tweaked commit message
> - Added trailer tags
> - Rebased on 6.8-rc1
> ---
>  tools/testing/selftests/dt/test_unprobed_devices.sh | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)

Applied, thanks.

Rob

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] kselftest: dt: Stop relying on dirname to improve performance
  2024-01-22 15:40 ` Rob Herring
@ 2024-01-29 23:00   ` Mark Brown
  0 siblings, 0 replies; 3+ messages in thread
From: Mark Brown @ 2024-01-29 23:00 UTC (permalink / raw)
  To: Rob Herring
  Cc: Nícolas F. R. A. Prado, Shuah Khan, Frank Rowand, devicetree,
	linux-kselftest, linux-kernel, kernel

[-- Attachment #1: Type: text/plain, Size: 563 bytes --]

On Mon, Jan 22, 2024 at 09:40:43AM -0600, Rob Herring wrote:
> On Mon, Jan 22, 2024 at 11:29:18AM -0300, Nícolas F. R. A. Prado wrote:

> > When walking directory trees, instead of looking for specific files and
> > running dirname to get the parent folder, traverse all folders and
> > ignore the ones not containing the desired files. This avoids the need

> Applied, thanks.

Is there any prospect of getting this merged as a fix?  It's causing a
massive number of false positives in my CI when run on slower boards
with larger numbers of devices.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-01-29 23:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-22 14:29 [PATCH v2] kselftest: dt: Stop relying on dirname to improve performance Nícolas F. R. A. Prado
2024-01-22 15:40 ` Rob Herring
2024-01-29 23:00   ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).