Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1581113pxf; Fri, 9 Apr 2021 12:00:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwknKN2LQ55nIwWiuDis5LVwYq+2q8AW+PUcOyKL+5lskzp7dUSzL+QT+hKZNLORanObW3X X-Received: by 2002:a17:906:94d6:: with SMTP id d22mr16892611ejy.424.1617994821135; Fri, 09 Apr 2021 12:00:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617994821; cv=none; d=google.com; s=arc-20160816; b=W5xhPQkdihXtB297eQo/DUqPNmhfwPQeW52/Tm9R7eRypUu75YXrFEjhYYpEuWsars rQqzlFx4IEO9BjfHfKl6fuNgtDzA93emfLMiDhTf7wiVZOaMcb0DMYJaQAeAwW1khQZj iUNlcBZAsO1qIWUmuXk/r+nkd3EItqdFqOLT5CCHrZ3sTBMBAa7mwWkR0WLK8bF3g6W8 4ok33GHADI9sPLO5HWMHCZlrBxJH5YEvFbqK4hfWEWmagSu9T4ncwNjmrq4jMzQgoiJ4 FnRl9DG7LVBSaIuwSIxh2iHRxnO8rTDHo6doWRlcBjVWhq+Tt9hx6JKMZdto9Nr+5f2n egbQ== 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 :message-id:to:from:cc:in-reply-to:subject:date:dkim-signature; bh=qzPGYRIIgbwAx3GIWXZYzwGgFSrgnjtXWJk804zYlrk=; b=cRGk90FoMH2LID3DMr7XtE9LVJjsSWto3ou1eZcq182eIbvyDNwHJBujVckab4/Ok3 meaDrlMdBwCVB+fL+ezTMGCPAfa1i+UnefL1hCNyfXXCi/qVrHN5meGEGIt0HQGVbuef wZijdX5CjelX+VtV4kGbCgx8MBw6Jg0Ygrav7OTghun04npZsHAUaFE4w7XBOoKMAoqZ gFPy5xfvK3uy8PY3UB4MgsBo96Cu0DJWRwO2o1ARFiwsNHJXN86uSKmr7UlmnbEUXdx2 WFdaG+6nJyQN8W2QQ/3QbYk/ckGIbr2bAhAW/KoXnAPRz2fEc+ORvzl3sCC5EbSvohni NVZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@dabbelt-com.20150623.gappssmtp.com header.s=20150623 header.b=R2zitmc2; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z26si2739581ejc.46.2021.04.09.11.59.57; Fri, 09 Apr 2021 12:00:21 -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=@dabbelt-com.20150623.gappssmtp.com header.s=20150623 header.b=R2zitmc2; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234829AbhDIS6e (ORCPT + 99 others); Fri, 9 Apr 2021 14:58:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59718 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234703AbhDIS6d (ORCPT ); Fri, 9 Apr 2021 14:58:33 -0400 Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com [IPv6:2607:f8b0:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C4190C061763 for ; Fri, 9 Apr 2021 11:58:20 -0700 (PDT) Received: by mail-pg1-x533.google.com with SMTP id t140so4594800pgb.13 for ; Fri, 09 Apr 2021 11:58:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20150623.gappssmtp.com; s=20150623; h=date:subject:in-reply-to:cc:from:to:message-id:mime-version :content-transfer-encoding; bh=qzPGYRIIgbwAx3GIWXZYzwGgFSrgnjtXWJk804zYlrk=; b=R2zitmc2UyEV/XFPNt4ZmSNyBT88XlV5CyfSwFCKbaDvAMOKHhQmYhcmW8lpJ3DVT3 O3xwUFblk6wGJdP9AvbLAreJHXUBPiiKV+GpPPrDC6J5pe4D6+0XFpUbR9FRuvbpeoVf d31nPgAzjXydWPbI/6YEgHQM9JSocQV3RK90CXUdO7ypRQeaboZBYagiFSBo+EYusG3N 0d82tK0bvRp31CvuDfLoVqCnkBvB9RlogDGlgnKphfFkXREFMGqR5bWYQs3ysQywimdD yEVesZi3bfW44keuWvg4KLYJMfp2mEXxmGRAPK23mlTtNVbLKe/VjJpIQbFGD20E9McU ezlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:subject:in-reply-to:cc:from:to:message-id :mime-version:content-transfer-encoding; bh=qzPGYRIIgbwAx3GIWXZYzwGgFSrgnjtXWJk804zYlrk=; b=GT3JyHssX5OAhKwmB2v453JfNNqWuR2HS7KPBzJhoMU8hYBJlndDn4lz12I9P0aL/c GRF7Fr2HhBTSWkV/nuA/8JnH70qacweTmsqSseFyhgPwJvB5fSbAWjN/unGzPCLXikhJ /upxU5NiXfUJESJQ3XU348bl7rHoaJdQ6VRaewtxGLgdOsARXe/E3IY1puaDp7uCfqYJ tzN4p95y1f8RzOTw6GDtdaMjYOG0+kHCFXBTakmeVYggu7FsKrnm6r7rbERB4ln75iZU WhrXrJ2/yj0hrrkngzLAHrZz7uMD267AkginFx03NO59xAwUMdFg0ScYvTIyrPpX7+TJ mRfQ== X-Gm-Message-State: AOAM530nVr+qJzySRQlwFbU4Z2ahtngUqw9OhbanAorQswBkd2U/EFO5 LeaAf5Un8DjacLN6Ek0PzpVTJQ== X-Received: by 2002:a63:6744:: with SMTP id b65mr14411777pgc.314.1617994700058; Fri, 09 Apr 2021 11:58:20 -0700 (PDT) Received: from localhost (76-210-143-223.lightspeed.sntcca.sbcglobal.net. [76.210.143.223]) by smtp.gmail.com with ESMTPSA id l18sm3602095pgh.70.2021.04.09.11.58.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 11:58:19 -0700 (PDT) Date: Fri, 09 Apr 2021 11:58:19 -0700 (PDT) X-Google-Original-Date: Fri, 09 Apr 2021 11:58:17 PDT (-0700) Subject: Re: [PATCH v16 00/17] KVM RISC-V Support In-Reply-To: CC: anup@brainfault.org, Anup Patel , Paul Walmsley , aou@eecs.berkeley.edu, graf@amazon.com, Atish Patra , Alistair Francis , Damien Le Moal , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org From: Palmer Dabbelt To: pbonzini@redhat.com Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 31 Mar 2021 02:21:58 PDT (-0700), pbonzini@redhat.com wrote: > On 30/03/21 07:48, Anup Patel wrote: >> >> It seems Andrew does not want to freeze H-extension until we have virtualization >> aware interrupt controller (such as RISC-V AIA specification) and IOMMU. Lot >> of us feel that these things can be done independently because RISC-V >> H-extension already has provisions for external interrupt controller with >> virtualization support. Sorry to hear that. It's really gotten to a point where I'm just embarrassed with how the RISC-V foundation is being run -- not sure if these other ones bled into Linux land, but this is the third ISA extension that's blown up over the last few weeks. We had a lot of discussion about this on the binutils/GCC side of things and I've managed to convince myself that coupling the software stack to the specification process isn't viable -- we made that decision under the assumption that specifications would actually progress through the process, but in practice that's just not happening. My goal with the RISC-V stuff has always been getting us to a place where we have real shipping products running a software stack that is as close as possible to the upstream codebases. I see that as the only way to get the software stack to a point where it can be sustainably maintained. The "only frozen extensions" policy was meant to help this by steering vendors towards a common base we could support, but in practice it's just not working out. The specification process is just so unreliable that in practice everything that gets built ends up relying on some non-standard behavior: whether it's a draft extension, some vendor-specific extension, or just some implementation quirks. There's always going to be some degree of that going on, but over the last year or so we've just stopped progressing. My worry with accepting the draft extensions is that we have no guarantee of compatibility between various drafts, which makes supporting multiple versions much more difficult. I've always really only been worried about supporting what gets implemented in a chip I can actually run code on, as I can at least guarantee that doesn't change. In practice that really has nothing to do with the specification freeze: even ratified specifications change in ways that break compatibility so we need to support multiple versions anyway. That's why we've got things like the K210 support (which doesn't quite follow the ratified specs) and are going to take the errata stuff. I hadn't been all that worried about the H support because there was a plan to get is to hardware, but with the change I'm not really sure how that's going to happen. > Yes, frankly that's pretty ridiculous as it's perfectly possible to > emulate the interrupt controller in software (and an IOMMU is not needed > at all if you are okay with emulated or paravirtualized devices---which > is almost always the case except for partitioning hypervisors). There's certainly some risk to freezing the H extension before we have all flavors of systems up and running. I spent a lot of time arguing that case years ago before we started telling people that the H extension just needed implementation, but that's not the decision we made. I don't really do RISC-V foundation stuff any more so I don't know why this changed, but it's just too late. It would be wonderful to have an implementation of everything we need to build out one of these complex systems, but I just just don't see how the current plan gets there: that's a huge amount of work and I don't see why anyone would commit to that when they can't count on it being supported when it's released. There are clearly some systems that can be built with this as it stands. They're not going to satisfy every use case, but at least we'll get people to start seriously using the spec. That's the only way I can see to move forward with this. It's pretty clear that sitting around and waiting doesn't work, we've tried that. > Palmer, are you okay with merging RISC-V KVM? Or should we place it in > drivers/staging/riscv/kvm? I'm certainly ready to drop my objections to merging the code based on it targeting a draft extension, but at a bare minimum I want to get a new policy in place that everyone can agree to for merging code. I've tried to draft up a new policy a handful of times this week, but I'm not really quite sure how to go about this: ultimately trying to build stable interfaces around an unstable ISA is just a losing battle. I've got a bunch of stuff going on right now, but I'll try to find some time to actually sit down and finish one. I know it might seem odd to complain about how slowly things are going and then throw up another roadblock, but I really do think this is a very important thing to get right. I'm just not sure how we're going to get anywhere with RISC-V without someone providing stability, so I want to make sure that whatever we do here can be done reliably. If we don't I'm worried the vendors are just going to go off and do their own software stacks, which will make getting everyone back on the same page very difficult. > Either way, the best way to do it would be like this: > > 1) you apply patch 1 in a topic branch > > 2) you merge the topic branch in the risc-v tree > > 3) Anup merges the topic branch too and sends me a pull request. > > Paolo