On Mon, Jan 10, 2022 at 10:19 AM Suren Baghdasaryan <surenb@xxxxxxxxxx> wrote: > > On Mon, Jan 10, 2022 at 9:42 AM Linus Torvalds > <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > On Mon, Jan 10, 2022 at 9:25 AM Suren Baghdasaryan <surenb@xxxxxxxxxx> wrote: > > > > > > About the issue of serializing concurrent writes for > > > cgroup_pressure_write() similar to how psi_write() does. Doesn't > > > of->mutex inside kernfs_fop_write_iter() serialize the writes to the > > > same file? > > > > Ahh, yes, it looks like that does solve the serialization issue. > > Sorry, I missed that because I'm not actually all that familiar with > > the kernfs 'of' code. > > > > So the only issue is the trigger lifetime one, and if a single trigger > > is sufficient and returning -EBUSY for trying to replace an existing > > one is good, then I think that's the proper fix. > > > > I'm very busy with the merge window (and some upcoming travel and > > family events), so I'm hoping somebody will write and test such a > > patch. Please? > > Yes, definitely. I'm on it. Will try posting it later today or > tomorrow morning if testing reveals something unexpected. My first attempt to fix this issue is posted at: https://lore.kernel.org/all/20220111025138.1071848-1-surenb@xxxxxxxxxx/ Couple notes: - I don't think we need psi_trigger::refcount anymore, therefore it's removed. - synchronize_rcu is kept to ensure we do not free group->poll_task while psi_schedule_poll_work is using it. - Documentation needed minimal changes because it did not clearly specify how trigger overwrite should work. Now it does. I ran as many test cases as I could find/create. I'll work on adding some kselftests for psi triggers to test different usage patterns. Thanks, Suren. > Thanks! > > > > > Linus