On Wed, Sep 22, 2021 at 10:11:02AM +0200, Greg Kroah-Hartman wrote: > On Wed, Sep 22, 2021 at 09:36:09AM +0200, Mauro Carvalho Chehab wrote: > > It sounds it took quite a while handling iommu cap, which sounds weird, as > > it should be looking just 3 What expressions: > > > > [07:43:06] What: /sys/class/iommu/.*/amd\-iommu/cap > > [07:43:06] What: /sys/class/iommu/.*/intel\-iommu/cap > > [07:43:06] What: /sys/devices/pci.*.*.*.*\:.*.*/0000\:.*.*\:.*.*..*/dma/dma.*chan.*/quickdata/cap > > > > Maybe there was a memory starvation while running the script, causing > > swaps. Still, it is weird that it would happen there, as the hashes > > and arrays used at the script are all allocated before it starts the > > search logic. Here, the allocation part takes ~2 seconds. > > No memory starvation here, this thing is a beast: > $ free -h > total used free shared buff/cache available > Mem: 251Gi 36Gi 13Gi 402Mi 202Gi 212Gi > Swap: 4.0Gi 182Mi 3.8Gi > > $ nproc > 64 > > > > At least on my Dell Precision 5820 (12 cpu threads), the amount of memory it > > uses is not huge: > > > > $ /usr/bin/time -v ./scripts/get_abi.pl undefined >/dev/null > > Command being timed: "./scripts/get_abi.pl undefined" > > User time (seconds): 12.68 > > System time (seconds): 1.29 > > Percent of CPU this job got: 99% > > Elapsed (wall clock) time (h:mm:ss or m:ss): 0:13.98 > > Average shared text size (kbytes): 0 > > Average unshared data size (kbytes): 0 > > Average stack size (kbytes): 0 > > Average total size (kbytes): 0 > > Maximum resident set size (kbytes): 212608 > > Average resident set size (kbytes): 0 > > Major (requiring I/O) page faults: 0 > > Minor (reclaiming a frame) page faults: 52003 > > Voluntary context switches: 1 > > Involuntary context switches: 56 > > Swaps: 0 > > File system inputs: 0 > > File system outputs: 0 > > Socket messages sent: 0 > > Socket messages received: 0 > > Signals delivered: 0 > > Page size (bytes): 4096 > > Exit status: 0 > > > > Unfortunately, I don't have any amd-based machine here, but I'll > > try to run it later on a big arm server and see how it behaves. > > I'll run that and get back to you in 30 minutes :) $ /usr/bin/time -v ./scripts/get_abi.pl undefined > /dev/null Command being timed: "./scripts/get_abi.pl undefined" User time (seconds): 1756.94 System time (seconds): 0.76 Percent of CPU this job got: 99% Elapsed (wall clock) time (h:mm:ss or m:ss): 29:18.94 Average shared text size (kbytes): 0 Average unshared data size (kbytes): 0 Average stack size (kbytes): 0 Average total size (kbytes): 0 Maximum resident set size (kbytes): 228116 Average resident set size (kbytes): 0 Major (requiring I/O) page faults: 0 Minor (reclaiming a frame) page faults: 55862 Voluntary context switches: 1 Involuntary context switches: 17205 Swaps: 0 File system inputs: 0 File system outputs: 0 Socket messages sent: 0 Socket messages received: 0 Signals delivered: 0 Page size (bytes): 4096 Exit status: 0