On Fri, Oct 14, 2022 at 01:27:25PM -0300, Leonardo Brás wrote: > Hello Frederic, > > So, IIUC you are removing all flags composing nohz_full= parameter in favor of a > unified NOHZ_FULL flag. > > I am very new to the code, and I am probably missing the whole picture, but I > actually think it's a good approach to keep them split for a couple reasons: > 1 - They are easier to understand in code (IMHO): > "This cpu should not do this, because it's not able to do WQ housekeeping" looks > better than "because it's not in DOMAIN or NOHZ_FULL housekeeping" A comment above each site may solve that. > > 2 - They are simpler for using: > Suppose we have this function that should run at a WQ, but we want to keep them > out of the isolated cpus. If we have the unified flags, we need to combine both > DOMAIN and NOHZ_FULL bitmasks, and then combine it again with something like > cpu_online_mask. It usually means allocating a new cpumask_t, and also freeing > it afterwards. > If we have a single WQ flag, we can avoid the allocation altogether by using > for_each_cpu_and(), making the code much simpler. I guess having a specific function for workqueues would arrange for it. > > 3 - It makes easier to compose new isolation modes: > In case the future requires a new isolation mode that also uses the types of > isolation we currently have implemented, it would be much easier to just compose > it with the current HK flags, instead of having to go through all usages and do > a cpumask_and() there. Also, new isolation modes would make (2) worse. Actually having a new feature merged in HK_NOHZ_FULL would make it easier to handle as it avoids spreading cpumasks. I'm not sure I understand what you mean. Thanks.