Patch "kselftest: dt: Stop relying on dirname to improve performance" has been added to the 6.7-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    kselftest: dt: Stop relying on dirname to improve performance

to the 6.7-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kselftest-dt-stop-relying-on-dirname-to-improve-perf.patch
and it can be found in the queue-6.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 911be933e70e5b474859fd0bd7f14542b762419c
Author: Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxx>
Date:   Mon Jan 22 11:29:18 2024 -0300

    kselftest: dt: Stop relying on dirname to improve performance
    
    [ Upstream commit 6154fb9c2134f8d9534b2de10491aa3a22f3c9ff ]
    
    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@xxxxxxxxxx>
    Closes: https://lore.kernel.org/all/310391e8-fdf2-4c2f-a680-7744eb685177@xxxxxxxxxxxxx
    Fixes: 14571ab1ad21 ("kselftest: Add new test for detecting unprobed Devicetree devices")
    Tested-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240122-dt-kselftest-dirname-perf-fix-v2-1-f1630532fd38@xxxxxxxxxxxxx
    Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

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
 	)
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux