Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp783652pxj; Thu, 3 Jun 2021 20:41:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxIskd6zSVZBkTbwKzkHwkGwT/+aQPONvG6YUjaMqDEVoaaUA2D/Mmf3jI7M2ZN/cf78HPj X-Received: by 2002:a05:6402:42cc:: with SMTP id i12mr2627426edc.272.1622778103138; Thu, 03 Jun 2021 20:41:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622778103; cv=none; d=google.com; s=arc-20160816; b=00KUFD5UdEdQxuLzPDiRc14oLH59k7XoSwwstxzNjME+tZuj4oPup1y/LZwdjU9TVV b5K5+xqCsyzL8tQsbJhr0kKP0y+HWwG29P9ItwG/DxfdFec/qTgXudn9PQ3hFTApCMZS jMfwFrSCj/wHuFJVFML7NqNDL9HKLAWvK9G0MZaup8yg0YOXQlMqCO4nNLhLs7XR5fz1 pQCL6Gee/lgzBorJcmTo7IGntxEj/ctIJbherVKB7cUpCK/+kifWmTr6BUIAc0lh/zhv oV2iKlOjP67+8P2t9dWo0VPEkyY9d/Qbp06DPdIwnJD08/D2aDN6KVHd77i9+Ai6KmBC +a8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=aFUnYpKRreDc48wVwuXCdbokDvF9b+3ny8yIoFA0wCM=; b=kmLibd+HrY/+Gd2+0hnJmPxL6Fd5ZNhJKrM+SlGwR7PyjA2U58E/5FCDYfPX7/MCdg NLgqRrmDd0J5RhuPH1oBf8xnzF0KZU4dxM/i/pSLaNg/4NDGCl2fj2BOj5EOwZdgJwwN aKeAKBC6cI39GS5YmdQnNRusmw4e+dFYaWdmX3UGzxrEn2RZ/Cq2aN3i/SjO/MWPMJnw VdkkrgN5THCowAwrBdivFK6rGmb47obXBRIQP7mvhrgppSbehs4Usx/ictSOJns5oXIm 1ZHUnuBT89lnnaWLLI/7jVaCnG2GycHU2Z961bUt5rHHeZsOUPdlB9R3t/bR41gUDgIx 8ejg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=amDeYvdC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d11si3259961ejo.629.2021.06.03.20.41.20; Thu, 03 Jun 2021 20:41:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=amDeYvdC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229791AbhFDDmB (ORCPT + 99 others); Thu, 3 Jun 2021 23:42:01 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:24935 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229769AbhFDDmA (ORCPT ); Thu, 3 Jun 2021 23:42:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1622778014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aFUnYpKRreDc48wVwuXCdbokDvF9b+3ny8yIoFA0wCM=; b=amDeYvdCtCn1iUg1XfCfRvzF+WZn1mR2WDOmWc+VGfybhwYMmtskVlp5kw8i5N1WX7Hgdw yKIEATS9jwDKFa5mHOqtk0OCGmLnA1p76Q1SWdDiDTvQbOgKLsGHlErveLnVcSGPSAcNOQ pArJlzk92lTCllTJK/skI2o0vunJUUk= Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-311-qvCTEw-tOSekR0HXR0ANAQ-1; Thu, 03 Jun 2021 23:40:13 -0400 X-MC-Unique: qvCTEw-tOSekR0HXR0ANAQ-1 Received: by mail-ot1-f72.google.com with SMTP id i25-20020a9d4a990000b0290304f00e3e3aso4349858otf.15 for ; Thu, 03 Jun 2021 20:40:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aFUnYpKRreDc48wVwuXCdbokDvF9b+3ny8yIoFA0wCM=; b=ZRLu6kZt67WHAFRuw6v1cpvgW1RwjzMzuKUSAUnr3tJgJFbfHzGOKECFW7KeJTiucT xOBmizF3HOJEZDFm1p1fybCX1O0kGd46htOX+Xeb49aQdm5+mb42rcFWqkWIVLlIDaqD 01KIjLQ4OXwJ/BBVxwY2IJ0CXLb9Ju3xmESbhoD7n3mFaXt61oW4UwlgyShJW7dVJenJ NYddl6yYOcVbJQHm9cwuNcU3W158gjRaYf5GEJ2yYuPAR5mTKncn5qxzXQL6hqhQILfr U4KmV64iUQLMqsifyNrbAWX7UgxpsoFNR90rXUNkALEnR22Irkv/GiF8dph3zScIyPKV EeGw== X-Gm-Message-State: AOAM530Ga8kASwQ+4tHYuRXlRTwyFJtxJFhMrC0H5mztGrfkbXw9Jjn7 646c0WWWtZtn0+p/itT4zpuMwe0p1voOSwqWVrTXe2vIlvfD3F5XHrzVNpV+pmq8i6GKzXW9v1V 7YVBjmF+It8lslFUvEjpfp9ny X-Received: by 2002:a54:4494:: with SMTP id v20mr1624082oiv.74.1622778012141; Thu, 03 Jun 2021 20:40:12 -0700 (PDT) X-Received: by 2002:a54:4494:: with SMTP id v20mr1624062oiv.74.1622778011907; Thu, 03 Jun 2021 20:40:11 -0700 (PDT) Received: from redhat.com ([198.99.80.109]) by smtp.gmail.com with ESMTPSA id d1sm223468otu.9.2021.06.03.20.40.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Jun 2021 20:40:11 -0700 (PDT) Date: Thu, 3 Jun 2021 21:40:09 -0600 From: Alex Williamson To: "Tian, Kevin" Cc: Jason Gunthorpe , Cornelia Huck , Kirti Wankhede , "Jiang, Dave" , "tglx@linutronix.de" , "vkoul@kernel.org" , "Raj, Ashok" , "Dey, Megha" , "Pan, Jacob jun" , "Liu, Yi L" , "Lu, Baolu" , "Kumar, Sanjay K" , "Luck, Tony" , "Williams, Dan J" , "eric.auger@redhat.com" , "pbonzini@redhat.com" , "dmaengine@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" Subject: Re: [PATCH v6 00/20] Add VFIO mediated device support and DEV-MSI support for the idxd driver Message-ID: <20210603214009.68fac0c4.alex.williamson@redhat.com> In-Reply-To: References: <162164243591.261970.3439987543338120797.stgit@djiang5-desk3.ch.intel.com> <20210523232219.GG1002214@nvidia.com> <86cde154-37c7-c00d-b0c6-06b15b50dbf7@intel.com> <20210602231747.GK1002214@nvidia.com> <20210603014932.GN1002214@nvidia.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 3 Jun 2021 05:52:58 +0000 "Tian, Kevin" wrote: > > From: Jason Gunthorpe > > Sent: Thursday, June 3, 2021 9:50 AM > > > > On Thu, Jun 03, 2021 at 01:11:37AM +0000, Tian, Kevin wrote: > > > > > Jason, can you clarify your attitude on mdev guid stuff? Are you > > > completely against it or case-by-case? If the former, this is a big > > > decision thus it's better to have consensus with Alex/Kirti. If the > > > latter, would like to hear your criteria for when it can be used > > > and when not... > > > > I dislike it generally, but it exists so . I know others feel > > more strongly about it being un-kernely and the wrong way to use sysfs. > > > > Here I was remarking how the example in the cover letter made the mdev > > part seem totally pointless. If it is pointless then don't do it. > > Is your point about that as long as a mdev requires pre-config > through driver specific sysfs then it doesn't make sense to use > mdev guid interface anymore? Can you describe exactly what step 1. is doing in this case from the original cover letter ("Enable wq with "mdev" wq type")? That does sound a bit like configuring something to use mdev then separately going to the trouble of creating the mdev. As Jason suggests, if a wq is tagged for mdev/vfio, it could just register itself as a vfio bus driver. But if we want to use mdev, why doesn't available_instances for your mdev type simply report all unassigned wq and the `echo $UUID > create` grabs a wq for mdev? That would remove this pre-config contention, right? > The value of mdev guid interface is providing a vendor-agnostic > interface for mdev life-cycle management which allows one- > enable-fit-all in upper management stack. Requiring vendor > specific pre-config does blur the boundary here. We need to be careful about using work-avoidance in the upper management stack as a primary use case for an interface though. > Alex/Kirt/Cornelia, what about your opinion here? It's better > we can have an consensus on when and where the existing > mdev sysfs could be used, as this will affect every new mdev > implementation from now on. I have a hard time defining some fixed criteria for using mdev. It's essentially always been true that vendors could write their own vfio "bus driver", like vfio-pci or vfio-platform, specific to their device. Mdevs were meant to be a way for the (non-vfio) driver of a device to expose portions of the device through mediation for use with vfio. It seems like that's largely being done here. What I think has changed recently is this desire to make it easier to create those vendor drivers and some promise of making module binding work to avoid the messiness around picking a driver for the device. In the auxiliary bus case that I think Jason is working on, it sounds like the main device driver exposes portions of itself on an auxiliary bus where drivers on that bus can integrate into the vfio subsystem. It starts to get pretty fuzzy with what mdev already does, but it's also a more versatile interface. Is it right for everyone? Probably not. Is the pre-configuration issue here really a push vs pull problem? I can see the requirement in step 1. is dedicating some resources to an mdev use case, so at that point it seems like the argument is whether we should just create aux bus devices that get automatically bound to a vendor vfio-pci variant and we avoid the mdev lifecycle, which is both convenient and ugly. On the other hand, mdev has more of a pull interface, ie. here are a bunch of device types and how many of each we can support, use create to pull what you need. > > Remember we have stripped away the actual special need to use > > mdev. You don't *have* to use mdev anymore to use vfio. That is a > > significant ideology change even from a few months ago. > > > > Yes, "don't have to" but if there is value of doing so it's > not necessary to blocking it? One point in my mind is that if > we should minimize vendor-specific contracts for user to > manage mdev or subdevice... Again, this in itself is not a great justification for using mdev, we're creating vendor specific device types with vendor specific additional features, that could all be done via some sort of netlink interface too. The thing that pushes this more towards mdev for me is that I don't think each of these wqs appear as devices to the host, they're internal resources of the parent device and we want to compose them in ways that are slightly more amenable to traditional mdevs... I think. Thanks, Alex