Messages in this thread | | | From | Thomas Gleixner <> | Subject | Re: [patch V2 0/3] signals: Allow caching one sigqueue object per task | Date | Fri, 12 Mar 2021 21:02:16 +0100 |
| |
On Thu, Mar 11 2021 at 15:13, Eric W. Biederman wrote: > 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.
Unfortunately they use both. The majority is probably process based.
Thanks,
tglx
| |