Re: cgroup specific sticky resources (was: Re: [PATCH bpf-next 0/5] bpf: BPF specific memory allocator.)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 19, 2022 at 12:30:17PM -0700, Yosry Ahmed wrote:
> Is there a reason why these resources cannot be moved across cgroups
> dynamically? The only scenario I imagine is if you already have tmpfs
> mounted and files charged to different cgroups, but once you attribute
> tmpfs to one cgroup.charge_for.tmpfs (or sticky,..), I assume that we
> can dynamically move the resources, right?
> 
> In fact, is there a reason why we can't move the tmpfs charges in that
> scenario as well? When we move processes we loop their pages tables
> and move pages and their stats, is there a reason why we wouldn't be
> able to do this with tmpfs mounts or bpf maps as well?

Nothing is impossible but nothing is free as well. Moving charges around
traditionally caused a lot of headaches in the past and never became
reliable. There are inherent trade-offs here. You can make things more
dynamic usually by making hot paths more expensive or doing some
synchronization dancing which tends to be pretty hairy. People generally
don't wanna make hot paths slower, so we tend to end up with something
twisted which unfortunately turns out to be a headache in the long term.

In general, I'd rather keep resource associations as static as possible.
It's okay if we do something neat inside the kernel but if we create
userspace expectation that resources can be moved around dynamically, we'll
be stuck with that for a long time likely forfeiting future simplification /
optimization opportunities.

So, that's gonna be a fairly strong nack from my end.

Thanks.

-- 
tejun



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux