Commit graph

54 commits

Author SHA1 Message Date
Karel Zak
faf8c94f06 lsfd: remove collect_file()
Signed-off-by: Karel Zak <kzak@redhat.com>
2021-10-06 11:01:54 +02:00
Karel Zak
f9fa97d395 lsfd: cleanup new file initialization
Don't use new_<class>() functions if we have already have
file_class callbacks.

Signed-off-by: Karel Zak <kzak@redhat.com>
2021-10-06 11:01:54 +02:00
Karel Zak
a910943426 lsfd: keep main() at the end of the code
and usage() before main().

Signed-off-by: Karel Zak <kzak@redhat.com>
2021-10-06 11:01:54 +02:00
Karel Zak
2d95dc093b lsfd: use 'new_' prefix when we allocate something
It's more readable than rather than 'make_'.

Signed-off-by: Karel Zak <kzak@redhat.com>
2021-10-06 11:01:54 +02:00
Karel Zak
6fb6f5495f lsfd: add --sysroot, use lib/path.c
* use struct path_cxt to read from /procfs

* add --sysroot to redirect lsfd to alternative location (necessary
  for regression tests)

* merge collect_procs() into collect()

Signed-off-by: Karel Zak <kzak@redhat.com>
2021-10-06 11:01:54 +02:00
Karel Zak
73ee7d4c21 lsfd: add --notruncate
* make COMMAND and NAME truncated by default (to keep output on terminal readable)
* add --notruncate to disable the default behaviour

Signed-off-by: Karel Zak <kzak@redhat.com>
2021-10-06 11:01:54 +02:00
Karel Zak
78f201593f lsfd: tiny change to default colummns initialization
Signed-off-by: Karel Zak <kzak@redhat.com>
2021-10-06 11:01:54 +02:00
Masatake YAMATO
bc9fd537d8 lsfd: unify nodev lists into global one 2021-10-06 11:01:54 +02:00
Masatake YAMATO
8fe66674b1 lsfd: don't use threads 2021-10-06 11:01:53 +02:00
Masatake YAMATO
63f3938581 lsfd: add MAPLEN column
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
45e225aa3e lsfd: increase the threads to collect information
$ sudo ./lsfd -l | wc -l
75837

[NUM_COLLECTORS 1]
sudo ./lsfd -l > /dev/null  1.16s user 0.62s system 98% cpu 1.805 total
sudo ./lsfd -l > /dev/null  1.12s user 0.50s system 99% cpu 1.630 total
sudo ./lsfd -l > /dev/null  1.14s user 0.49s system 99% cpu 1.642 total

[NUM_COLLECTORS 2]
sudo ./lsfd -l > /dev/null  1.18s user 0.53s system 127% cpu 1.343 total
sudo ./lsfd -l > /dev/null  1.21s user 0.50s system 126% cpu 1.350 total
sudo ./lsfd -l > /dev/null  1.14s user 0.51s system 128% cpu 1.291 total

[NUM_COLLECTORS 3]
sudo ./lsfd -l > /dev/null  1.21s user 0.55s system 138% cpu 1.278 total
sudo ./lsfd -l > /dev/null  1.15s user 0.51s system 139% cpu 1.187 total
sudo ./lsfd -l > /dev/null  1.15s user 0.51s system 140% cpu 1.180 total

[NUM_COLLECTORS 4]
sudo ./lsfd -l > /dev/null  1.23s user 0.66s system 154% cpu 1.218 total
sudo ./lsfd -l > /dev/null  1.22s user 0.54s system 154% cpu 1.137 total
sudo ./lsfd -l > /dev/null  1.14s user 0.64s system 158% cpu 1.123 total

[NUM_COLLECTORS 5]
sudo ./lsfd -l > /dev/null  1.19s user 0.72s system 171% cpu 1.118 total
sudo ./lsfd -l > /dev/null  1.14s user 0.62s system 165% cpu 1.063 total
sudo ./lsfd -l > /dev/null  1.15s user 0.73s system 176% cpu 1.063 total

[NUM_COLLECTORS 6]
sudo ./lsfd -l > /dev/null  1.23s user 0.70s system 173% cpu 1.115 total
sudo ./lsfd -l > /dev/null  1.29s user 0.67s system 169% cpu 1.157 total
sudo ./lsfd -l > /dev/null  1.24s user 0.75s system 185% cpu 1.070 total

[NUM_COLLECTORS 7]
sudo ./lsfd -l > /dev/null  1.32s user 0.74s system 182% cpu 1.130 total
sudo ./lsfd -l > /dev/null  1.25s user 0.82s system 195% cpu 1.058 total
sudo ./lsfd -l > /dev/null  1.22s user 0.74s system 188% cpu 1.041 total

[NUM_COLLECTORS 8]
sudo ./lsfd -l > /dev/null  1.30s user 0.92s system 194% cpu 1.141 total
sudo ./lsfd -l > /dev/null  1.21s user 0.81s system 197% cpu 1.027 total
sudo ./lsfd -l > /dev/null  1.22s user 0.79s system 199% cpu 1.005 total

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
a500de3400 lsfd: introduce DEVNAME column and use it as default
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
269c425f5b lsfd: add a function to get the name of filesystem from a given minor number
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
5bced64c66 lsfd: add a stub for fifo type 2021-10-06 11:01:53 +02:00
Masatake YAMATO
903b4bec1a lsfd: add MISCDEV column
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
4e899f5261 lsfd: add CHRDRV column
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
b3a23f4d3a lsfd: add PARTITION column
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
5179d52824 lsfd: introduce name_manager
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
2dfe2e4d1b lsfd: add PROTONAME column
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
3638de3f42 lsfd: allow passing a proc object to the constructors of the file classes
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
602dbcd9a8 lsfd: make username_cache lsfd-file privaite
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
4230e09ffc lsfd: add the way to initialize and finalize classes
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
5701c64338 lsfd: fill POS and MODE columns for SHM and MEM associated files
/proc/$pid/maps files are used as the data sourecs.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
202a50e6cb lsfd: introduce new association SHM representing shared file mapping
MEM is kept for representing private file mapping.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
ecfd869e7c lsfd: add code for reading /proc/$pid/maps
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
18878c1ff9 lsfd: introduce fopenf helper function
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
2da06d3cd0 lsfd: add stubs for sockets and files of unknown type
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
26508d6325 lsfd: simplify class hierarchy
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
2f947be1eb lsfd: replace POS with MNT_ID in default column set
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
17adf20f12 lsfd: add MODE column
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
22b7cf51cc lsfd: add FLAGS, MNTID, and POS columns
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
19299584e9 lsfd: add infrstructure code for reading fdinfo files
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
3d4b926a40 lsfd: don't collect and print redundant information about threads
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
6008b460cb lsfd: support threads with -l option
-t and -T are reserved for ffiltering feature.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
d754885aa6 lsfd: print the owner of process as USER
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
bc7f865abb lsfd: adjust column width for COMMAND
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
6fab121587 lsfd: add NLINK and DELETED columns
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
bec8c27141 lsfd: add columns for SIZE
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
61fe735065 lsfd: give column widths
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
b7b6e261a3 lsfd: specify column more declarative way
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
fd4fe429eb lsfd: declare JSON type in colinfo entries
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
15b4715726 lsfd: add columns for DEV and RDEV
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
1478549077 lsfd: refactor code calling collect_outofbox_files 2021-10-06 11:01:53 +02:00
Masatake YAMATO
7388e0b359 lsfd: add mem associations 2021-10-06 11:01:53 +02:00
Masatake YAMATO
f1d0b0bbc2 lsfd: add namespace related associations
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
a4778cb5f3 lsfd: add cwd, exe, and root associations
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2021-10-06 11:01:53 +02:00
Masatake YAMATO
2ac344fba8 lsfd: purge fd layer 2021-10-06 11:01:53 +02:00
Masatake YAMATO
4c812bc911 lsfd: fill ASSOC field 2021-10-06 11:01:53 +02:00
Masatake YAMATO
6ada35230d lsfd: fill DEVICE field 2021-10-06 11:01:53 +02:00
Masatake YAMATO
fb0cd93cea lsfd: fill INODE field 2021-10-06 11:01:53 +02:00