Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4424FC05027 for ; Wed, 8 Feb 2023 03:54:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229731AbjBHDyp (ORCPT ); Tue, 7 Feb 2023 22:54:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229709AbjBHDym (ORCPT ); Tue, 7 Feb 2023 22:54:42 -0500 Received: from mail-vs1-xe2a.google.com (mail-vs1-xe2a.google.com [IPv6:2607:f8b0:4864:20::e2a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9CE5824120 for ; Tue, 7 Feb 2023 19:54:40 -0800 (PST) Received: by mail-vs1-xe2a.google.com with SMTP id p10so18583476vsu.5 for ; Tue, 07 Feb 2023 19:54:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=7xy5M3fz0l0X2SQ63fjTJcdMWle8UVBFox2YRH9C6JI=; b=jumaRq+1vVrtJu6P6hw26HaRrK4SG45ip3jbgHbpA60jy280er7eSGAILCyGiQUzRh EG84b13En4l3RmgWNu/l0OU28H6PUaqViXQW1f6xL4jLqOOYJtkJIsiYhKWWV/7Uh/sm tAfX2rlVV0zgoOue8vqoR2kQlD47Pe9Fi0V9ON1mb9DFq3ERNmTpzsuc+F9r+6RsXUpT R362OX9hcDvFHbFIasHsWo2xFAIwAzqE4khoKbQM6yKiPg5YJz+augxWiBsGdh6dxeCe KQCdf85hglNgeUPVmML9U4YWaDNnt+kirGVY7ksayMZa5MvP3GVvwWf+vwXmtBAADGN3 pEcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=7xy5M3fz0l0X2SQ63fjTJcdMWle8UVBFox2YRH9C6JI=; b=wKbJUV6+ETZbk8BjM3J6Uh7rnl1iwhvyr81j0sAK0t/ClpQ1D8JvaTF1oB48TgBjhG r0A7JaBIC+MoU4+eXKJQ1+GDY3yOCYteQC35ndykHWf73KGhVwdD98iQhRl5Qb8ORdfF f6NXqXZF7FEhY78suaHzNNCl4DIuu8Hw3sYkPTlWvMAcUHzBOQ8nt3Kv8rpQUk0ZymI+ dNLS0289bJO/aXFWmLyry5ksLrynOSVWtB7ya8DU1Blz+YRcPO8q0vD2kVNpC8PLjQ3Z Z2UD82Oizug3tEDERJ7BTZN4Apb4bWdzehi6O4m43zEOQ+zNF45lvE9FqK5X5SoAUIj7 dLCQ== X-Gm-Message-State: AO0yUKWwBYmL62lRqHh8yocve4e1lmvDwqrVE7birJNJVJEXm1nVigak xAZUFHOKsV3wZsYtx7x7YaOS5Q/ZWXHHth7rkqnfig== X-Google-Smtp-Source: AK7set/C8ZIfjQLa79oWDuypbzJUpPrXnbxQF+3h2DlybVI6HNQSdHyFMtbxp9Q39S8NAzXlY7TK0BHpZQle1UIXNzI= X-Received: by 2002:a67:d606:0:b0:411:b0da:14be with SMTP id n6-20020a67d606000000b00411b0da14bemr478323vsj.55.1675828479268; Tue, 07 Feb 2023 19:54:39 -0800 (PST) MIME-Version: 1.0 References: <20230128072737.2995881-3-apatel@ventanamicro.com> In-Reply-To: From: Anup Patel Date: Wed, 8 Feb 2023 09:24:28 +0530 Message-ID: Subject: Re: [PATCH v2 2/7] RISC-V: Detect AIA CSRs from ISA string To: Conor Dooley Cc: Atish Patra , Stephano Cetola , Jeff Scheel , Palmer Dabbelt , pbonzini@redhat.com, Paul Walmsley , ajones@ventanamicro.com, anup@brainfault.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 8, 2023 at 2:09 AM Conor Dooley wrote: > > On Tue, Feb 07, 2023 at 10:15:22AM -0800, Atish Patra wrote: > > On Tue, Feb 7, 2023 at 10:05 AM Conor Dooley wrote: > > > On Fri, Feb 03, 2023 at 05:31:01PM +0530, Anup Patel wrote: > > > > On Fri, Feb 3, 2023 at 5:54 AM Palmer Dabbelt wrote: > > > > > > > > > > On Fri, 27 Jan 2023 23:27:32 PST (-0800), apatel@ventanamicro.com wrote: > > > > > > We have two extension names for AIA ISA support: Smaia (M-mode AIA CSRs) > > > > > > and Ssaia (S-mode AIA CSRs). > > > > > > > > > > This has pretty much the same problem that we had with the other > > > > > AIA-related ISA string patches, where there's that ambiguity with the > > > > > non-ratified chapters. IIRC when this came up in GCC the rough idea was > > > > > to try and document that we're going to interpret the standard ISA > > > > > strings that way, but now that we're doing custom ISA extensions it > > > > > seems saner to just define on here that removes the ambiguity. > > > > > > > > > > I just sent > > > > > > > > > > which documents that. > > > > > > > > I am not sure why you say that these are custom extensions. > > > > > > > > Multiple folks have clarified that both Smaia and Ssaia are frozen > > > > ISA extensions as-per RVI process. The individual chapters which > > > > are in the draft state have nothing to do with Smaia and Ssaia CSRs. > > > > > > > > Please refer: > > > > https://github.com/riscv/riscv-aia/pull/36 > > > > https://lists.riscv.org/g/tech-aia/message/336 > > > > https://lists.riscv.org/g/tech-aia/message/337 > > > > > > All of these links seem to discuss the draft chapters somehow being > > > incompatible with the non-draft ones. I would very expect that that, > > > as pointed out in several places there, that the draft chapters > > > finalisation would not lead to meaningful (and incompatible!) changes > > > being made to the non-draft chapters. > > > > > > > Here is the status of all RVI specs. It states that the Smaia, Ssaia > > extensions are frozen (i.e. public review complete). > > https://wiki.riscv.org/display/HOME/Specification+Status > > > > I have added stephano/Jeff to confirm the same. > > > > AFAIK, IOMMU spec is close to the public review phase and should be > > frozen in this or next quarter. > > IIRC, this chapter in AIA will be frozen along with IOMMU spec. > > > > Anup: Please correct me if that's not correct. > > > > > Maybe yourself and Palmer are looking at this from different > > > perspectives? Looking at his patch from Friday: > > > https://lore.kernel.org/linux-riscv/20230203001201.14770-1-palmer@rivosinc.com/ > > > He specifically mentioned this aspect, as opposed to the aspect that > > > your links refer to. > > > > > > Surely a duo-plic, if that ever comes to be, could be detected from > > > compatible strings in DT or w/e - but how do you intend differentiating > > > between an implementation of S*aia that contains the IOMMU support in > > > Chapter 9 in a finalised form, versus an implementation that may make > > > "different decisions" when it comes to that chapter of the spec? > > > > We will most likely have an extension specific to iommu spec as well. > > Right, but unless I am misunderstanding you, that is an extension for the > IOMMU spec, not for Chapter 9 of the AIA spec? > > I would say that it is likely that if you have AIA and IOMMU that you'd > want to be implementing Chapter 9, but that would not appear sufficient to > draw a conclusion from. > > Maybe the RVI lads that you've added (or Anup for that matter!) can > clarify if there is a requirement that if you do AIA and IOMMU that you > must do Chapter 9. > If not, my prior question about a differentiation mechanism still applies > I think! For the benefit of everyone, the AIA spec mainly defines three modular components: 1) Extended Local Interrupt CSRs (Smaia and Ssaia extensions) (ISA extension covered by: Chapter 2, Chapter 6, and Chapter 7) 2) Incoming MSI Controller (IMSIC) (ISA and Non-ISA extension covered by: Chapter 3 and Chapter 8) 3) Advanced PLIC (APLIC) (Non-ISA extension covered by: Chapter 4) Apart from above, we have Chapter 5 ("Duo-PLIC") and Chapter 9 ("IOMMU Support for MSIs to Virtual Machines") which are in draft state. Currently, there are no RISC-V members who have expressed interest in implementing Chapter 5 ("Duo-PLIC") so this chapter will stay in draft state for a foreseeable future. The Chapter 9 ("IOMMU Support for MSIs to Virtual Machines") defines an optional feature of IOMMU which can be implemented by a standard IOMMU (such as RISC-V IOMMU) or a vendor specific IOMMU. A RISC-V platform can certainly support device pass-through using IMSIC guest files and an IOMMU which does not implement Chapter 9. Unfortunately, there is a limit on the maximum number of per-HART IMSIC guest files which can further limit the number of pass-through devices. The Chapter 9 allows RISC-V platforms to support large number of pass-through devices by defining "MRIF - memory resident interrupt files" for an IOMMU. Further, the MRIFs defined by Chapter 9 are simply interrupt files located in main memory and have nothing to do with AIA local interrupt CSRs (Smaia and Ssaia). The presence of S*aia in ISA string only implies that AIA extended local interrupt CSRs are implemented by the underlying RISC-V implementation. I confirm that it is certainly not mandatory for a RISC-V platform to implement Chapter 9 of the AIA specification if the RISC-V platform already implements AIA and IOMMU. > > > > I thought that would be handled by extension versions, but I am told > > > that those are not a thing any more. > > > If that's not true, and there'll be a version number that we can pull in > > > from a DT and parse which will distinguish between the two, then please > > > correct my misunderstanding here! Regards, Anup