Messages in this thread | | | From | (Eric W. Biederman) | Date | Thu, 11 Mar 2021 15:13:22 -0600 | Subject | Re: [patch V2 0/3] signals: Allow caching one sigqueue object per task |
| |
Thomas Gleixner <tglx@linutronix.de> writes:
> This is a follow up to the initial submission which can be found here: > > https://lore.kernel.org/r/20210303142025.wbbt2nnr6dtgwjfi@linutronix.de > > Signal sending requires a kmem cache allocation at the sender side and the > receiver hands it back to the kmem cache when consuming the signal. > > This works pretty well even for realtime workloads except for the case when > the kmem cache allocation has to go into the slow path which is rare but > happens. > > Preempt-RT carries a patch which allows caching of one sigqueue object per > task. The object is not preallocated. It's cached when the task receives a > signal. The cache is freed when the task exits.
I am probably skimming fast and missed your explanation but is there a reason the caching is per task (aka thread) and not per signal_struct (aka process)?
My sense is most signal delivery is per process. Are realtime workloads that extensively use pthread_sigqueue? The ordinary sigqueue interface only allows targeting a process.
Mostly I am just trying to get a sense of the workloads that are improved by this.
Eric
| |