aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/perf/test_perf.js
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-11 12:23:25 +0100
committerDanilo M. <danix@danix.xyz>2026-11-11 12:23:25 +0100
commit63ed39482219ba9172e151d9c82692aff9a622ad (patch)
tree918fd1228588d9048cf6f49e75d7dfd757b8239b /desktop/modules/perf/test_perf.js
parent9227120043a2ea3df3a84ac85e784057cab05635 (diff)
downloadquickshell-63ed39482219ba9172e151d9c82692aff9a622ad.tar.gz
quickshell-63ed39482219ba9172e151d9c82692aff9a622ad.zip
fix(network): list NFS traffic on the drawer's network pageHEADmaster
A pcmanfm-qt copy of 8GB from an NFS share never appeared among the busiest processes. The copy's bytes travel on the kernel NFS client's TCP socket to port 2049, which ss reports with no users:(()) owner, and sockets() skipped every ownerless socket. The file manager itself owns no socket for the transfer at all. Ownerless sockets whose peer port is 2049 are now kept and named "NFS <server>". Which process drives the traffic is not knowable from ss, so the row names the share's server instead. Other ownerless sockets (other users', without root) are still skipped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/modules/perf/test_perf.js')
-rw-r--r--desktop/modules/perf/test_perf.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/desktop/modules/perf/test_perf.js b/desktop/modules/perf/test_perf.js
index 7c108a8..d5856e8 100644
--- a/desktop/modules/perf/test_perf.js
+++ b/desktop/modules/perf/test_perf.js
@@ -153,7 +153,8 @@ assert.deepStrictEqual(P.procs(frame), [
]);
assert.deepStrictEqual(P.procs(""), []);
-// sockets: owned sockets with their -i counters; ownerless ones skipped.
+// sockets: owned sockets with their -i counters; ownerless ones skipped
+// unless they are the kernel's NFS client.
const ss = [
"ESTAB 0 0 10.0.0.5:35806 192.0.2.1:443 users:((\"firefox\",pid=12,fd=53))",
"\t cubic rto:340 bytes_sent:100 bytes_acked:101 bytes_received:5000 segs_out:2",
@@ -161,11 +162,14 @@ const ss = [
"\t cubic bytes_sent:999 bytes_received:999",
"SYN-SENT 0 1 10.0.0.5:49916 192.0.2.2:65081 users:((\"ktorrent\",pid=7,fd=67))",
"\t cubic rto:1000 segs_out:3",
+ "ESTAB 0 0 10.0.0.5:678 192.0.2.4:2049",
+ "\t cubic bytes_sent:7 bytes_received:8000",
].join("\n");
const socks = P.sockets(ss);
assert.deepStrictEqual(socks, [
{ key: "10.0.0.5:35806 192.0.2.1:443 12", name: "firefox", rx: 5000, tx: 100 },
{ key: "10.0.0.5:49916 192.0.2.2:65081 7", name: "ktorrent", rx: 0, tx: 0 },
+ { key: "10.0.0.5:678 192.0.2.4:2049", name: "NFS 192.0.2.4", rx: 8000, tx: 7 },
]);
// netProcs: deltas over the interval summed by name; a new socket counts