On Wed, Mar 22, 2023 at 9:10 PM Shakeel Butt <shakeelb@xxxxxxxxxx> wrote: > > On Wed, Mar 22, 2023 at 9:00 PM Yosry Ahmed <yosryahmed@xxxxxxxxxx> wrote: > > > > Currently, if rstat flushing is invoked using the irqsafe variant > > cgroup_rstat_flush_irqsafe(), we keep interrupts disabled and do not > > sleep for the entire flush operation, which is O(# cpus * # cgroups). > > This can be rather dangerous. > > > > Not all contexts that use cgroup_rstat_flush_irqsafe() actually cannot > > sleep, and among those that cannot sleep, not all contexts require > > interrupts to be disabled. > > Too many negations in the above sentence is making it very confusing. Sorry, this is indeed very confusing. I guess a better rephrasing is: Multiple code paths use cgroup_rstat_flush_irqsafe(), but many of them can sleep. Even among the code paths that actually cannot sleep, multiple ones are interruptible.