On 20 February 2024 17:15:06 CET, Sean Christopherson <sea...@google.com> wrote: >On Tue, Feb 20, 2024, Paul Durrant wrote: >> On 20/02/2024 15:55, Sean Christopherson wrote: >> > On Thu, 15 Feb 2024 15:28:55 +0000, Paul Durrant wrote: >> > > From: Paul Durrant <pdurr...@amazon.com> >> > > >> > > This series contains a new patch from Sean added since v12 [1]: >> > > >> > > * KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot() >> > > >> > > This frees up the function name kvm_is_error_gpa() such that it can then >> > > be >> > > re-defined in: >> > > >> > > [...] >> > >> > *sigh* >> > >> > I forgot to hit "send" on this yesterday. But lucky for me, that worked >> > out in >> > my favor as I needed to rebase on top of kvm/kvm-uapi to avoid pointless >> > conflicts >> > in the uapi headeres. >> > >> > So.... >> > >> > Applied to kvm-x86 xen, minus 18 and 19 (trylock stuff) and 21 (locking >> > cleanup >> > that we're doing elsewhere). >> > >> >> Looks like you meant 17 & 18? > >Doh, yes. > >> > Paul and David, please take (another) look at the end result to make sure >> > you don't >> > object to any of my tweaks and that I didn't botch anything. >> > >> >> What was the issue with 17? It was reasonable clean-up and I'd like to keep >> it even without 18 being applied (and I totally understand your reasons for >> that). > >I omitted it purely to avoid creating an unnecessary dependency for the trylock >patch. That way the trylock patch (or whatever it morphs into) can be applied >on >any branch (along with the cleanup), i.e. doesn't need to be taken through >kvm-x86/xen.
What about if (in_atomic() && read_trylock()) return -EAGAIN; else read_lock(); That way we don't have any even theoretical fairness issues because the trylock can fail just *once* which kicks us to the slow path and that'll take the lock normally now. The condition might not actually be in_atomic() but I'm not working this week and you get the idea.