On Mon, Jan 15, 2024, Paul Durrant wrote:
From: Paul Durrant pdurrant@amazon.com
As described in [1] compiling with CONFIG_PROVE_RAW_LOCK_NESTING shows that kvm_xen_set_evtchn_fast() is blocking on pfncache locks in IRQ context. There is only actually blocking with PREEMPT_RT because the locks will turned into mutexes. There is no 'raw' version of rwlock_t that can be used to avoid that, so use read_trylock() and treat failure to lock the same as an invalid cache.
Are rwlocks fundamentally incapable of supporting a raw version? Because that's the only argument I see for adding a hack like this.