Re: [RFC bpf-next 0/1] bpf: Add page cache iterator

From: Daniel Xu
Date: Thu Apr 08 2021 - 20:24:45 EST


On Thu, Apr 08, 2021 at 04:13:32PM -0700, Darrick J. Wong wrote:
> On Wed, Apr 07, 2021 at 02:46:10PM -0700, Daniel Xu wrote:
> > There currently does not exist a way to answer the question: "What is in
> > the page cache?". There are various heuristics and counters but nothing
> > that can tell you anything like:
> >
> > * 3M from /home/dxu/foo.txt
> > * 5K from ...
>
> 5K? That's an extraordinary Weird Machine(tm).

Just typing random numbers :)

> > * etc.
> >
> > The answer to the question is particularly useful in the stacked
> > container world. Stacked containers implies multiple containers are run
> > on the same physical host. Memory is precious resource on some (if not
> > most) of these systems. On these systems, it's useful to know how much
> > duplicated data is in the page cache. Once you know the answer, you can
> > do something about it. One possible technique would be bind mount common
> > items from the root host into each container.
>
> Um, are you describing a system that uses BPF to deduplicating the page
> cache by using bind mounts? Can the containers scribble on these files
> and thereby mess up the other containers? What happens if the container
> wants to update itself and clobbers the root host's copy instead? How
> do you deal with a software update process failing because the root host
> fights back against the container trying to change its files?

No, the BPF progs are not intended to modify the pages. This is just for
read only observability.

> Also, I thought we weren't supposed to share resources across security
> boundaries anymore?

I can't speak to this, but bpf progs can pretty much be attached to
anywhere so this iterator doesn't expose anything new.

<...>

Thanks,
Daniel