On 20 February 2024 17:15:06 CET, Sean Christopherson <seanjc@xxxxxxxxxx> 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 <pdurrant@xxxxxxxxxx> >> > > >> > > 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.