RFC: Sorting in top -m io

Dag-Erling Smørgrav des at des.no
Thu Jul 8 15:24:12 PDT 2004


Giorgos Keramidas <keramida at freebsd.org> writes:
> What do you all think of this patch to top(1)?

extremely inefficient; get_io_stats() is an expensive function and you
really don't want to call it approximately log(n) per process while
sorting, especially when it returns the same values every time.

an ugly trick to get around this is to have get_process_info() store
io stats in ki_spare[] or some other unused kinfo_proc field, so you
never need to call get_io_stats() outside get_process_info().

you should also do secondary sort orders like the existing compare_*()
functions do, since qsort() is unstable, so processes with identical
stats will jump around if they aren't also sorted by name or some
other secondary criterion.

DES
-- 
Dag-Erling Smørgrav - des at des.no


More information about the freebsd-current mailing list