Il giorno lun 24 mar 2025 alle ore 13:09 Karel Zak <k...@redhat.com> ha scritto:
>
> On Mon, Feb 10, 2025 at 02:34:00PM +0100, Matteo Croce wrote:
> > From: xiaofeidu <xiaofe...@meta.com>
> >
> > mu is a new tool which shows the amount of data that a set of files
> > are keeping into the cache.
> > mu uses the new cachestat() syscall introduced with Linux 6.5.
> >
> > Example usage, we use mu over gcc libraries, before and after calling
> > gcc for the first time after boot:
> >
> >       $ src/mu --all --human-readable --threshold=1 /usr/lib/gcc/
> >
> >       $ gcc /dev/null -o /dev/zero
> >       /usr/bin/ld: /usr/lib64/crt1.o: in function `__wrap_main':
> >       (.text+0x38): undefined reference to `main'
> >       collect2: error: ld returned 1 exit status
> >
> >       $ src/mu --all --human-readable --threshold=1 /usr/lib/gcc/
> >       4.0K    /usr/lib/gcc/aarch64-redhat-linux/14/crtbegin.o
> >       4.0K    /usr/lib/gcc/aarch64-redhat-linux/14/crtend.o
> >       128K    /usr/lib/gcc/aarch64-redhat-linux/14/libgcc.a
> >       4.0K    /usr/lib/gcc/aarch64-redhat-linux/14/libgcc_s.so
> >       140K    /usr/lib/gcc/aarch64-redhat-linux/14
> >       140K    /usr/lib/gcc/aarch64-redhat-linux
> >       140K    /usr/lib/gcc/
>
> Sounds very similar to fidcore(1) that we already have in util-linux
> (since v2.30, June 2017). It was originally based on mincore() and was
> extended two years ago to use cachestat().
>
> $ fincore /usr/lib/gcc/x86_64-redhat-linux/14/crt*
> RES PAGES  SIZE FILE
>  4K     1  2.7K /usr/lib/gcc/x86_64-redhat-linux/14/crtbegin.o
>  4K     1  2.9K /usr/lib/gcc/x86_64-redhat-linux/14/crtbeginS.o
>  4K     1  3.2K /usr/lib/gcc/x86_64-redhat-linux/14/crtbeginT.o
>  4K     1  1.4K /usr/lib/gcc/x86_64-redhat-linux/14/crtend.o
>  4K     1  1.4K /usr/lib/gcc/x86_64-redhat-linux/14/crtendS.o
>  0B     0  1.8K /usr/lib/gcc/x86_64-redhat-linux/14/crtfastmath.o
>  0B     0  1.6K /usr/lib/gcc/x86_64-redhat-linux/14/crtoffloadbegin.o
>  0B     0  1.6K /usr/lib/gcc/x86_64-redhat-linux/14/crtoffloadend.o
>  0B     0  1.8K /usr/lib/gcc/x86_64-redhat-linux/14/crtoffloadtable.o
>  0B     0  1.8K /usr/lib/gcc/x86_64-redhat-linux/14/crtoffloadtableS.o
>  0B     0  1.8K /usr/lib/gcc/x86_64-redhat-linux/14/crtprec32.o
>  0B     0  1.8K /usr/lib/gcc/x86_64-redhat-linux/14/crtprec64.o
>  0B     0  1.8K /usr/lib/gcc/x86_64-redhat-linux/14/crtprec80.o
>
> For more details, see misc-utils/fincore.c in the util-linux tree.
> Maybe there is something we can improve to match your requirements
> (and motivation) for "mu".
>
>     Karel
>
> --
>  Karel Zak  <k...@redhat.com>
>  http://karelzak.blogspot.com
>

Hi,

the biggest differences are that "mu" follows the "du" semantics,
analyzing directories recursively and printing cumulative numbers.
And it only uses cachestat() without falling back to mincore.

Anyway I had prepared a draft util-linux port, it's available here:

https://github.com/util-linux/util-linux/pull/3493

Regards,
-- 
Matteo Croce

perl -e 'for($t=0;;$t++){print chr($t*($t>>8|$t>>13)&255)}' |aplay

Reply via email to