Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp203864rwb; Thu, 12 Jan 2023 18:27:25 -0800 (PST) X-Google-Smtp-Source: AMrXdXvrR/xShs8ZNO3oeQ/HtgY4Ux7tvgEpDBzWZNE3S1W5BmCXY9mHKFdySX0cjb6cHgQYlSEX X-Received: by 2002:a17:902:ebc9:b0:185:441e:2d7a with SMTP id p9-20020a170902ebc900b00185441e2d7amr83210329plg.17.1673576845323; Thu, 12 Jan 2023 18:27:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673576845; cv=none; d=google.com; s=arc-20160816; b=kh1gNnNus34OD7z4DDQ4N1+ktlNqL0ySZDdrDsRBxn/RKO2/bNQZUd+Uq0IM83wg5L 7a4A+Mza4Idyf+/8E85XNPX9U+Mg73Y1iFewQAx6eI2v1c+1w7B0d/Ej33JEM5/3KnFe jwSTgvLlc+Oa8yAz4okkWTiv90toVuiO7fO1iAGdNIa5uh0yIcJlWNHq9x5mMPLJA/z7 tPrOeVsWKmJu0AYQzlGrswY/KgEVcqd9oAv0olEdNhacn9qRCoSVpVztoiGdFiP4fAF/ CbZmWsu50OVj/ffzgwHV9vbvSoj8bfY/ToIyNYo6m6mjcv4D3ro4Asz97NoGn1/zIvO/ Qxaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=imvHeHfSB76NKxqNg7yS5d0bnfZ/68ukGArZSjXXLbU=; b=LTv/S/1JAcvKusZXOiEb2txcv/LG0DKzpsIv0+nEp0GQQgGS/LheuU92j/+cPx0K6A UfLHV8c4fAcaCYBy5Xfz1lK/dUm2KMgH5tMUI9CZl7kaQ/c+OEK9tBT98bfsZjPddZr1 sfNX7Rwl30y7IWt5sqDVi2PWiHFUFYqeMeQvYQU/pGMPWmF9XeZbeGcOeR9ileTI6s27 khcESq/pI7NVOg2QMOvASM6FQDwC4H3kzP4SOaq+AbhLg0w3oOOEKc6HaaDbMJRUXtN8 piLtd1xOoD/ngdTfp9av5H/QHmYvXd6UHalU1auipHPcjW3EAD6CALryP2YOBz7Mztd3 t5Pg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="gfL4hh/P"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x26-20020a63171a000000b00461b7568ad2si8277567pgl.527.2023.01.12.18.27.18; Thu, 12 Jan 2023 18:27:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="gfL4hh/P"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240540AbjAMCFY (ORCPT + 50 others); Thu, 12 Jan 2023 21:05:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231346AbjAMCFW (ORCPT ); Thu, 12 Jan 2023 21:05:22 -0500 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6B883621B1 for ; Thu, 12 Jan 2023 18:05:19 -0800 (PST) Received: by mail-pl1-x62b.google.com with SMTP id s8so13714798plk.5 for ; Thu, 12 Jan 2023 18:05:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=imvHeHfSB76NKxqNg7yS5d0bnfZ/68ukGArZSjXXLbU=; b=gfL4hh/PAfTWoPxrgPNOjugdRQT6/WV65DgBrSnpV5ljD3nsqQZO//RzEo7T4oLQqx c4Q0mI405eGfoj8LuS0wI2sQdlqaeNnCgTAsK9ojs6iEaCaHua6vjwZaKDc+OIsKFBm9 w5TSAgwjkuR9lTRDlbRtIxIeYn77XVQL36m+j6TNN1IPYFjq7eERVWltVZh8xI+AuS6x Ebb8o0T31ad1vrZqKXtO581o4RiY7HqEeVSqH6w/J7bYR6aLkGoMN3t0S7fDWdcn2JdL sRmydefKjnfHqNzBKp647Hzmqgin/vcHPGOfInZ9RvBNC86xV/kMej7ry3nwiPeZw8Hm rb1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=imvHeHfSB76NKxqNg7yS5d0bnfZ/68ukGArZSjXXLbU=; b=v63GVKAkfPk61xdrRXnWl54gvDFUxsREiqlx4+U0wIiL4SO3AxEFsyA7LCE3tIHT23 Ao2V/Ud/vUADfiJPIM2AwjWIwmAuFlPsDJYoLU7rGBlN3m8WQivWsNkru5mSNcnMo5Lc ZcqleGkn2y1mTMDrDypMWKmRlMuVPCUaaWH3nctLFfoBN52wDb3c5VbiQia/cv9r14JR 96V0VMqBdAywDnTaJAVDl86RMHu/MkgYk5w0gr9ShduNEIYQYIlVPsdOx6K5J02a4a4P 9nlPoG51uFEZCZun6p0ogRTOzIzc50S4ZuFVyAl8sAO0C5bvDi/WkqW7t/QsvBtQFfRM VWdA== X-Gm-Message-State: AFqh2krZVugaUSHE+PaWJI04jBTcS0TKFbxTRPYsirxPxho7z17iUv5C XuRupSJXSwFe9JSG1/rnVjAT6A== X-Received: by 2002:a17:902:b10e:b0:191:4367:7fde with SMTP id q14-20020a170902b10e00b0019143677fdemr994708plr.0.1673575518755; Thu, 12 Jan 2023 18:05:18 -0800 (PST) Received: from google.com (7.104.168.34.bc.googleusercontent.com. [34.168.104.7]) by smtp.gmail.com with ESMTPSA id d22-20020a170902aa9600b001871461688esm12835625plr.175.2023.01.12.18.05.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jan 2023 18:05:18 -0800 (PST) Date: Fri, 13 Jan 2023 02:05:14 +0000 From: Sean Christopherson To: Alex Williamson Cc: Matthew Rosato , pbonzini@redhat.com, jgg@nvidia.com, cohuck@redhat.com, farman@linux.ibm.com, pmorel@linux.ibm.com, borntraeger@linux.ibm.com, frankja@linux.ibm.com, imbrenda@linux.ibm.com, david@redhat.com, akrowiak@linux.ibm.com, jjherne@linux.ibm.com, pasic@linux.ibm.com, zhenyuw@linux.intel.com, zhi.a.wang@intel.com, linux-s390@vger.kernel.org, kvm@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] vfio: fix potential deadlock on vfio group lock Message-ID: References: <20230112203844.41179-1-mjrosato@linux.ibm.com> <20230112140517.6db5b346.alex.williamson@redhat.com> <20230112175648.158dca5f.alex.williamson@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230112175648.158dca5f.alex.williamson@redhat.com> X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 12, 2023, Alex Williamson wrote: > On Thu, 12 Jan 2023 23:29:53 +0000 > Sean Christopherson wrote: > > > On Thu, Jan 12, 2023, Matthew Rosato wrote: > > > On 1/12/23 4:05 PM, Alex Williamson wrote: > > > > On Thu, 12 Jan 2023 15:38:44 -0500 > > > > Matthew Rosato wrote: > > > >> @@ -344,6 +345,35 @@ static bool vfio_assert_device_open(struct vfio_device *device) > > > >> return !WARN_ON_ONCE(!READ_ONCE(device->open_count)); > > > >> } > > > >> > > > >> +static bool vfio_kvm_get_kvm_safe(struct kvm *kvm) > > > >> +{ > > > >> + bool (*fn)(struct kvm *kvm); > > > >> + bool ret; > > > >> + > > > >> + fn = symbol_get(kvm_get_kvm_safe); > > > >> + if (WARN_ON(!fn)) > > > > In a related vein to Alex's comments about error handling, this should not WARN. > > WARNing during vfio_kvm_put_kvm() makes sense, but the "get" is somewhat blind. > > It's not exactly blind though, we wouldn't have a kvm pointer if the > kvm-vfio device hadn't stuffed one into the group. We only call into > here if we have a non-NULL pointer, so it wouldn't simply be that the > kvm module isn't available for this to fire, but more that we have an > API change to make the symbol no longer exist. A WARN for that doesn't > seem unreasonable. Thanks, Hmm, I was thinking that it might be possible for kvm.ko to be on its way out, but barring use of force module unload, which breaks things left and right, kvm.ko can only be going if all VMs have been destroyed. Agreed, WARN is fine.