Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp1285099rwb; Wed, 16 Nov 2022 15:12:01 -0800 (PST) X-Google-Smtp-Source: AA0mqf5TwTd7mHV6XULdqaIaNisfbs9M0wrQJmQBvcqx1iH5wt35znAHjjHKve7+lR8yvI9TPv4o X-Received: by 2002:a17:906:489a:b0:7b2:73d0:4b9c with SMTP id v26-20020a170906489a00b007b273d04b9cmr7002747ejq.746.1668640321589; Wed, 16 Nov 2022 15:12:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668640321; cv=none; d=google.com; s=arc-20160816; b=i/eO1KneY95kuKXKRy0GvPfpu6lsN67Au6KjOFBbqU68ntrgIBKhbKf1UTRPidsE8p uou67QHHnEF4mrGYaZQVHCqOtTlDbDiJWljNiwlS+XgajZovZZrlU49Vn4JLLtzKGE9Z KncD6sPKwcB7PVOhHaiEBv689lLbCoK4xH6o2GCoXu7Gimhtg3srnQsmAJ6Mp4bUBiLy bWwo+NMi147rt5AW+pnTXCNFONoFpAKiJfrLLsEqT/cRFAG6JZygPjTcq8FNe92wDG+O mbdx+BWgI6JaSybCHCZufpkypwHFSSINY71yECwHQ8KlvgJlHsYIN/dFx8vTvU2Tf4tN paCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=+zZBmGjrWNywxUCFJ3IifR4CdgFbRJ2FrenmoJtPTe4=; b=UhA5yQWOLWb/8jn9Swq/vYqmjnTO6+ftR9QuEGRPxu4W89NfDbZIXxaOiNOTnYjkZF 4+ki+cZ6yQicQROVR9dg0skVVnjiTfTLQIGGbpzgNTaMMKsZpX6nxalMa/YsaH/GaSpk 8KNBsVBt49dMOJM7yzdkuEgkLER4m5bkeOPmzIpkzGhOHbewnXgFo+DBG3leci8k7tEz wzZz9DnC5g1nPhDCD+9aoV+6TKZSUhhFk8jzBMVvplcyyWRu9fK6wUcyygnwaXKEh8kZ fz1+ZBtkQRV1GDuBAGQs1xAndHS9eD6eLZZjBcgHUvsYhNLiEaDFCv6Vlm3TF1wPO1oF d60A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=e5HwP7Kd; dkim=neutral (no key) header.i=@linutronix.de; 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=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e12-20020a50a68c000000b00461a144e981si15652453edc.356.2022.11.16.15.11.40; Wed, 16 Nov 2022 15:12:01 -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=@linutronix.de header.s=2020 header.b=e5HwP7Kd; dkim=neutral (no key) header.i=@linutronix.de; 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=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233921AbiKPWj1 (ORCPT + 90 others); Wed, 16 Nov 2022 17:39:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234224AbiKPWjM (ORCPT ); Wed, 16 Nov 2022 17:39:12 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 892A76CA20; Wed, 16 Nov 2022 14:38:54 -0800 (PST) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1668638333; 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: in-reply-to:in-reply-to:references:references; bh=+zZBmGjrWNywxUCFJ3IifR4CdgFbRJ2FrenmoJtPTe4=; b=e5HwP7KdGxIAeXgk4rVPee3lmodoWeXo+HSuoRqoOhGBQ9YekKQtIPTt1y/+iNmlsBXyEt UOnJSLMCpag6pIXSbhqxPnCGpuXhRXUFjej7tIytSqRO+V+4ycMszLk4S5ICJ4wQBaHa0L xs+2jjhx56WlVSMRLZ3ZNuKYW1t1tMasgSt30igDfkWyhPO9qqLLyYjvIUAu/j1kcfpz89 lwd3TYUVxtO/4dOx/30y+Et5TgMJyNn6PcXzP1BnOvdAmW4/D4Y56iDcHxtX98O3qBDT48 BwP/OPK0ID8LcQVmSM3wKMfFd6ncZaJfbnv4U+FZ273+KJhl4F8ZJ2Won6bMVw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1668638333; 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: in-reply-to:in-reply-to:references:references; bh=+zZBmGjrWNywxUCFJ3IifR4CdgFbRJ2FrenmoJtPTe4=; b=ZAPQya+IEoGSfYiyF4S36PGfB5cX1+c7kBfmwJaOzdop1RlQfHqzml0yRaKn+aVaAJr66O Jutfq2lT9iecFDCQ== To: Jason Gunthorpe Cc: LKML , x86@kernel.org, Joerg Roedel , Will Deacon , linux-pci@vger.kernel.org, Bjorn Helgaas , Lorenzo Pieralisi , Marc Zyngier , Greg Kroah-Hartman , Dave Jiang , Alex Williamson , Kevin Tian , Dan Williams , Logan Gunthorpe , Ashok Raj , Jon Mason , Allen Hubbe , "Ahmed S. Darwish" , Reinette Chatre Subject: Re: [patch 12/33] PCI/MSI: Add support for per device MSI[X] domains In-Reply-To: References: <20221111133158.196269823@linutronix.de> <20221111135205.951710169@linutronix.de> Date: Wed, 16 Nov 2022 23:38:52 +0100 Message-ID: <87tu2yo77n.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham 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 Wed, Nov 16 2022 at 15:13, Jason Gunthorpe wrote: > On Fri, Nov 11, 2022 at 02:58:30PM +0100, Thomas Gleixner wrote: >> + .info = { >> + .flags = MSI_COMMON_FLAGS | MSI_FLAG_PCI_MSIX, >> + .bus_token = DOMAIN_BUS_PCI_DEVICE_MSIX, >> + }, >> +}; > > I like this splitting alot, it makes the whole thing make so much more > sense. :) >> +bool pci_setup_msi_device_domain(struct pci_dev *pdev) >> +{ >> + if (WARN_ON_ONCE(pdev->msix_enabled)) >> + return false; >> + >> + if (pci_match_device_domain(pdev, DOMAIN_BUS_PCI_DEVICE_MSI)) >> + return true; >> + if (pci_match_device_domain(pdev, DOMAIN_BUS_PCI_DEVICE_MSIX)) >> + msi_remove_device_irq_domain(&pdev->dev, MSI_DEFAULT_DOMAIN); >> + >> + return pci_create_device_domain(pdev, &pci_msi_template, 1); > > Hardwired to one 1? What about multi-msi? MSI has exactly ONE descriptor whether it's single or multi-MSI. Multi-MSI can have several interrupts hanging off the same descriptor, but that's not how MSI looks at it because you write ONE message and the hardware does the substitution of the low bits depending on which vector is raised. I pondered to change that, but that would have required to create yet another code path for the 20years legacy and to adjust every single implementation of PCI/MSI domains or the underlying parents to handle this new world order. About 5 years later we might talk about per device domains then. Thanks, tglx