Received: by 2002:a05:7412:cfc7:b0:fc:a2b0:25d7 with SMTP id by7csp1388647rdb; Mon, 19 Feb 2024 14:04:14 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVhpydVq6GTNC1rKgxVXMrd1CBg0BQW4dS7ymyv59ZGueNNJE7vG+4QmrrzXdcfWLPw1Puhg7neF7sqnrd9NYOT6ao+z6sY3Sx85Qk4EA== X-Google-Smtp-Source: AGHT+IE+gq0/M/MoF/EUznMtUQe1tBgpYAn5+TXVvNLRTSLGKWkaTOI5yezvgTF7ShVHxn1uihnl X-Received: by 2002:a05:6a00:2346:b0:6e4:5ff9:f037 with SMTP id j6-20020a056a00234600b006e45ff9f037mr5452408pfj.12.1708380254307; Mon, 19 Feb 2024 14:04:14 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708380254; cv=pass; d=google.com; s=arc-20160816; b=aevDI31Hi7wX5MIh/xLaLuTeRTJrd9hWiWZ2FunDKaO7UxkCCIZh3byM2lVVolKepH khlSfZdSMj4C7KqRhqHk5NuXRSUwKbf+sKrWIx2rKK8hWQBwQo/ynVm+mBrxOfnOt/LT 2fE+/CoBj4wbdHiFavIE+JPNOdBcMTELLuPVlmaj4mfsQh7e+zAhcdJnGgwI4U19P+rC b2tVGiRvJ49oDJAvz55R8ykgfG4dmjufVMjTKbvu6a5oC9fkrpeEaspnZqvY7VlMFU6n gN/mdEpCaf2judIQLi/kgoRL/VsY+4FiydQqAA0mU05xXy4jLb1VCb+r+ai2NUBbIa/h 2/fQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:message-id:references:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:in-reply-to:date :dkim-signature; bh=sIoAxWg2Rgxh0wBAnGtn0nTSmvHTWVcMdwCyHzC/E98=; fh=aiUv3+F29M1rgPR/xXPZMy5Bee0CMw20jTRAVQss2eY=; b=UZFM7N7uggLA0s8uhDz2CqVxjknqnbnj6zX3WOF2pLnBRrSN7vrusx1sVKMabnsgb3 2KeIOvqX4VAk+0DzvZR97d2bSnMeVfzDMQn8PgKD6r+KO6LaZpvqWbsEU73+yk3wljff yAia4WJXDZnMgdi4uqJiK+3yjFTmtDP8yUHgtPm1IXn9owd1UBSAzyKfiJpkxFX9Ij1t NhkLQabJFisk0+OxEarru7pZY75QMF3mbZtYhE1MT0JJKHjBWZnaurjmhrJ+8e3pfXvk xfGc54VesX74jEgtrBQAdmZ45lNTRkHoml/Slt5SeN5z0icwMTBUGmZY5la0Ux6fP5D+ YosA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=J+EPFUpE; arc=pass (i=1 spf=pass spfdomain=flex--seanjc.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-72039-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-72039-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id 3-20020a631243000000b005dc9b236b70si4871942pgs.808.2024.02.19.14.04.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Feb 2024 14:04:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-72039-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=J+EPFUpE; arc=pass (i=1 spf=pass spfdomain=flex--seanjc.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-72039-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-72039-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id F2CED2842DD for ; Mon, 19 Feb 2024 22:04:13 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9A30354F8B; Mon, 19 Feb 2024 22:04:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="J+EPFUpE" Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 30B0654BE1 for ; Mon, 19 Feb 2024 22:04:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708380247; cv=none; b=ogZj5FD4Mx5bXdhbFtwFAFtZXJLvoTXqnV2xPXvwtCBvPW2bFaY5FRHDR6Ao6ih4ZX9awopM/QbSf7xHrbVKpJWeo3XLDyt9iBoNplZXxmlFJWmXN5XzECnTsYZAi7n0c1X20/zVoZoZM88cSCMVXor9f61UpsIfl8xweoDCOjM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708380247; c=relaxed/simple; bh=J03aD5uG4DZQRY96gYjBmSEDE7q4ck4AQZKwQK9AIG0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=hKu0CecVyEjP2rdcv3hsY/iRXvOa2L1x5pPVz8RSIacCr3n/RACzfH7UWNvfPGRmYVS/YVzMQeEhFjxpk1fuoZZQ61zqOpkHPDDQt9FO3rkjE98hcxvB+DzycOLVzqeZlXjKoOP+v2q6glT0IG8vzHKA8GumJtpaRthDsmRf+dc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=J+EPFUpE; arc=none smtp.client-ip=209.85.210.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-6e41d856114so1636006b3a.1 for ; Mon, 19 Feb 2024 14:04:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1708380245; x=1708985045; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=sIoAxWg2Rgxh0wBAnGtn0nTSmvHTWVcMdwCyHzC/E98=; b=J+EPFUpEHQ3akYJ89Gq6TMqfdrq3es23hlmojB0yE5/qQqySfBJdRxU8IV2vi5a9uU +gwqVXf/PIdIu9qg7pVrNV9yDKwK94xd8eh8sz3N+X6AKujtH+2bQoNmBITcrg6mIXgd BjR0JSEQqqsaB9Df2um/O3hY16ZbyfWF8ewFEEYnkvEHo8J9e99mfTez2AGRu+Se2kQ6 hkwJF2uS+uxIT39DmALg5Dx277sCVgCBk+O1juyprxJl0kQ3vcRsXqURChQyDfZC7q66 oK2wK76sBDUH4rxruhRXZusCJxNd7v/Lh8Yc5yFxY8JPoj1NWv8IIzBJoiMkTEaRhtNt Imcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708380245; x=1708985045; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sIoAxWg2Rgxh0wBAnGtn0nTSmvHTWVcMdwCyHzC/E98=; b=gPZH2h9ocSBtIQgKfBBz6ERQ/2KuY+/zs7qyfRMS7ca/emsCtk3Vhm7gykuB8IzsNc XWqphC2+xsn/bkx+Qx5QW/t0iwl24TGrh6zDRryGIoUHhUes4LvszLoR68Jhvthu9DJ5 eGSTzTAUCKvM2Uk2g8pdoktHVhsApmQwb2LJkBmLZBoUr/gz+eL3sT3LtAD1uoh1BX8i HhaWV8QL2qrd08x98eVdKptYVOM0Y0P2RwUOq37keAookaCOHuZfymBWQL5ZsKVO25NM ulyyIqG7TWHBNXArG4GGdhk4J6kdJo+tID5zhV3XHxqU/Pw8kp3OuDd+tg5EOgLG1spK xVZw== X-Forwarded-Encrypted: i=1; AJvYcCVTmrhD7pMGhXc/I44SSAlf5sR1I4CiPYfZ2V5Rp8yGoABBXHVBLiN/fWDC7SlWI9xjzIX+aUIqYmweP9foBa07WobgCEyfuldjtz0a X-Gm-Message-State: AOJu0YyCbsvVSBflI1Oy0ZoRKFtgAX4utgJuB6TDdJHd9+k1Kv5K8Asv 2H2W/A3utx7szH6FlFd6kL7HRMfbAf841C9bMAqA3MROLhlhrnbqjf7MfoVgrcy+p7MLH9gfStK 2uA== X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:aa7:8890:0:b0:6e3:6c21:5fd9 with SMTP id z16-20020aa78890000000b006e36c215fd9mr187512pfe.0.1708380245606; Mon, 19 Feb 2024 14:04:05 -0800 (PST) Date: Mon, 19 Feb 2024 14:04:04 -0800 In-Reply-To: <20240215152916.1158-19-paul@xen.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240215152916.1158-1-paul@xen.org> <20240215152916.1158-19-paul@xen.org> Message-ID: Subject: Re: [PATCH v13 18/21] KVM: x86/xen: don't block on pfncache locks in kvm_xen_set_evtchn_fast() From: Sean Christopherson To: Paul Durrant Cc: Paolo Bonzini , Jonathan Corbet , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , David Hildenbrand , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Sven Schnelle , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , David Woodhouse , Shuah Khan , kvm@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="us-ascii" On Thu, Feb 15, 2024, Paul Durrant wrote: > From: Paul Durrant > > 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. > > [1] https://lore.kernel.org/lkml/99771ef3a4966a01fefd3adbb2ba9c3a75f97cf2.camel@infradead.org/T/#mbd06e5a04534ce9c0ee94bd8f1e8d942b2d45bd6 > > Signed-off-by: Paul Durrant > Reviewed-by: David Woodhouse > --- > Cc: Sean Christopherson > Cc: Paolo Bonzini > Cc: Thomas Gleixner > Cc: Ingo Molnar > Cc: Borislav Petkov > Cc: Dave Hansen > Cc: "H. Peter Anvin" > Cc: David Woodhouse > Cc: x86@kernel.org > > v13: > - Patch title change. > > v11: > - Amended the commit comment. > > v10: > - New in this version. > --- > arch/x86/kvm/xen.c | 30 ++++++++++++++++++++---------- > 1 file changed, 20 insertions(+), 10 deletions(-) > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 59073642c078..8650141b266e 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -1678,10 +1678,13 @@ static int set_shinfo_evtchn_pending(struct kvm_vcpu *vcpu, u32 port) > unsigned long flags; > int rc = -EWOULDBLOCK; > > - read_lock_irqsave(&gpc->lock, flags); > - if (!kvm_gpc_check(gpc, PAGE_SIZE)) > + local_irq_save(flags); > + if (!read_trylock(&gpc->lock)) > goto out; I am not comfortable applying this patch. As shown by the need for the next patch to optimize unrelated invalidations, switching to read_trylock() is more subtle than it seems at first glance. Specifically, there are no fairness guarantees. I am not dead set against this change, but I don't want to put my SoB on what I consider to be a hack. I've zero objections if you can convince Paolo to take this directly, i.e. this isn't a NAK. I just don't want to take it through my tree.