Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp5036825pxb; Tue, 5 Oct 2021 16:11:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy8x+fraoPSjfi2xVoJwXl7Hd2xSjuHUmgzsKNS05uSAGtGPbvx9nqYhD81GaQnVk1fFVRY X-Received: by 2002:a65:52cc:: with SMTP id z12mr10259933pgp.56.1633475487083; Tue, 05 Oct 2021 16:11:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633475487; cv=none; d=google.com; s=arc-20160816; b=XVCScw6LoQs/5JmiPYHRgebgbLKK0yrTiOy36aaYdHkt97G5PZGaG11CCJck3yA9Ah /n7Wyh3Z+C+QzCeb+/yYLgjHCCMEJlQ3oHSsC+tp7sw09R6qdhMNrYkKVEd9C6ptLE56 LYUkSDP4ZSMQ6b2H5GRHfBaOxpuqto1kHw84BDYdfFpRO57CCGXG59gnvTciIvI/0I0I +A14lmmcocmMdQ9+AF06p4ms2ukyWBkbS4YjiTqCZeepgoAGW8rq+ZcST/9MCYPGx65v OHvCH6FDwhCp0FA3ZBDICO2T5vzpmP/V8QEz+wsHHP1RMmO2HAMgPIVwqcP0i06DSC5w vnLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=iBXKLuBIklAebOb/7/xhhltJLs9mxot7CbToqq09lPc=; b=KmeJO5WJQ21dRpRFHYABOne7NJX4gVt3FG4PtYMgWERud+dtMSyURsXaSsFdc6COFi Oi1sy1tzU2V/5vHBECQyEMQkMg/7CYnpNOzNOQjYJ8JaVrYx3n9+KHswjtyI9YTU4y/b JKHUCPvcKgrxS+6MZOXdUay5gW/GJZTy2iktsSTaRF7ubiBKMEzNYPZzpr6ZV92kXTtC bYEhqdgiW/7cLrzcDEUhZ0/GM3uM2dAdNOLS2vV3WUI7w58MkN8HANcqWS4cSHUUCT9b CK8ewoa4fkYyRz3i21NxZTMChwQagFgCO7qlzUmHznW1W/5Wta8mkLEqln5K1SkiZ3Gb U8RA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=iDyFeXK2; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l9si3594434pjc.80.2021.10.05.16.11.14; Tue, 05 Oct 2021 16:11:27 -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=@gmail.com header.s=20210112 header.b=iDyFeXK2; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236924AbhJEXMD (ORCPT + 99 others); Tue, 5 Oct 2021 19:12:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236700AbhJEXL6 (ORCPT ); Tue, 5 Oct 2021 19:11:58 -0400 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BBA9C061749; Tue, 5 Oct 2021 16:10:07 -0700 (PDT) Received: by mail-wr1-x444.google.com with SMTP id t8so2744664wri.1; Tue, 05 Oct 2021 16:10:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=iBXKLuBIklAebOb/7/xhhltJLs9mxot7CbToqq09lPc=; b=iDyFeXK2NKKvbDXs4VwXnlSl3NkYOyK+zgkM+1mZp15wWXjlE2t+1bXtxcWxPFkvd7 ruBvWnCORCgBGHUhsG4yvJ08kAGlR7uU0n2IXMYUMNj9hVUolfd5kQxrK4BoMh5b0DLo +JNMxOo5Oj6dkboM90sPq/kx7d5W3oGTBUq+AMq6v9QBP6VONttWV6dKH4sx/ojK+xGI C7kF+D5WHxOHU+Ktltw+KE3+0+Ta+Jcv20hYx0gW17CoowlyUY+hhkn9eLPvGlUc0oYZ E3AGlKuU2t/Vmo25KZKNSTxqZ9wjt9ek8mSqo4zVJb8Z41ETKy3TMb0Ui7CYNYkj81sb zXPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=iBXKLuBIklAebOb/7/xhhltJLs9mxot7CbToqq09lPc=; b=AKs2II75vIq/Hz164KDpf2vbrb31bhM/ATCg7ubK5UZDJLQa9d7B+q3ZJov9DM2sOJ fZYXdcZ/557Y90TxSmmCYrcw6Hbc/sTYQo9PvUJ4h5KQH3xj0GZdt2Xc5bQ2U/aXlpcq 1K9g0e7VQuErsaUq60h61AuoHlzBz71f155hSFKHcwwNrc1oxajb3n7xa7ti7MdU0Do4 L4K2D7pyEX1H41CbTHt4l7ESee/2whwpPbu/JFmw2KiJqQl7haREiVEoKpSi1OmVxiFT yEDTpydkCs8nYWNXIve2zWTKEchdXMykHSEnVGP+V+i0t8HDwZFmmntPt9JYZy52vnPJ ygeg== X-Gm-Message-State: AOAM533NcViiCGbeeAcWjbe1c3ea2lFmHdfqeIqsWX0CNVfM57EDzJFS fL1Ag2UYU7gLWTJ48v8gZAHISLXMiKMXHanLNsU= X-Received: by 2002:a05:600c:ac1:: with SMTP id c1mr6456296wmr.99.1633475405855; Tue, 05 Oct 2021 16:10:05 -0700 (PDT) MIME-Version: 1.0 References: <48FF6F8E-95E2-4A29-A059-12EF614B381C@oracle.com> <20211001115455.GJ3544071@ziepe.ca> <4EAE3BC9-26B6-41E3-B040-2ADAB77D96CE@oracle.com> <20211001120153.GL3544071@ziepe.ca> In-Reply-To: <20211001120153.GL3544071@ziepe.ca> From: Si-Wei Liu Date: Tue, 5 Oct 2021 16:09:54 -0700 Message-ID: Subject: Re: Enabling RO on a VF To: Jason Gunthorpe Cc: Haakon Bugge , Leon Romanovsky , Doug Ledford , Bjorn Helgaas , OFED mailing list , "linux-pci@vger.kernel.org" , LKML Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 1, 2021 at 6:02 AM Jason Gunthorpe wrote: > > On Fri, Oct 01, 2021 at 11:59:15AM +0000, Haakon Bugge wrote: > > > > > > > On 1 Oct 2021, at 13:54, Jason Gunthorpe wrote: > > > > > > On Fri, Oct 01, 2021 at 11:05:15AM +0000, Haakon Bugge wrote: > > >> Hey, > > >> > > >> > > >> Commit 1477d44ce47d ("RDMA/mlx5: Enable Relaxed Ordering by default > > >> for kernel ULPs") uses pcie_relaxed_ordering_enabled() to check if > > >> RO can be enabled. This function checks if the Enable Relaxed > > >> Ordering bit in the Device Control register is set. However, on a > > >> VF, this bit is RsvdP (Reserved for future RW > > >> implementations. Register bits are read-only and must return zero > > >> when read. Software must preserve the value read for writes to > > >> bits.). > > >> > > >> Hence, AFAICT, RO will not be enabled when using a VF. > > >> > > >> How can that be fixed? > > > > > > When qemu takes a VF and turns it into a PF in a VM it must emulate > > > the RO bit and return one > > > > I have a pass-through VF: > > > > # lspci -s ff:00.0 -vvv > > ff:00.0 Ethernet controller: Mellanox Technologies MT28800 Family [ConnectX-5 Ex Virtual Function] > > [] > > DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- > > RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- FLReset- > > Like I said, it is a problem in the qemu area.. > > Jason Can you clarify why this is a problem in the QEMU area? Even though Mellanox device might well support it (on VF), there's no way for QEMU to really know if an arbitrary passthrough device may support RO. It either has to resort to the host kernel to detect all PCIe device functions up to the root port throughout the PCIe fabric, or it may follow PF's enabling status if it is at all capable. I don't see what QEMU can do by just forcefully emulating the bit? Not to mention the current implementation only takes care of broken root port but not the intermediate switches. https://lore.kernel.org/linux-arm-kernel/MWHPR12MB1600255ACFCD3FB3C80EB8B6C88B0@MWHPR12MB1600.namprd12.prod.outlook.com/ -Siwei