On Fri, Apr 11, 2025 at 11:37:25PM +0300, Jarkko Sakkinen wrote: > > This is going to enable and disable interrupts twice and that can be > > expensive, depending on the arch. I wonder if it would be better to do: > > > > local_irq_save(flags); > > spin_lock(&key_graveyard_lock); > > list_add_tail(&key->graveyard_link, &key_graveyard); > > spin_unlock(&key_graveyard_lock); > > schedule_work(&key_gc_work); > > local_irq_restore(flags); > > I like this but shouldn't this also comprehend the quota update before > (just asking for completeness sake)?
"This brings me on to another though: Should key_serial_lock be a seqlock? And should the gc use RCU + read_seqlock() and insertion write_seqlock()?" https://lore.kernel.org/keyrings/797521.1743602...@warthog.procyon.org.uk/ I think that should be done too (because it made whole a lot of sense) as a separate patch. I'd just prefer move slowly and in baby steps for better quality, and keep that as a separate follow-up patch. It makes obviously sense given rare writes. BR, Jarkko