Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp4852713pxv; Tue, 6 Jul 2021 10:38:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJymHoPEGlp3uKJVpPsWQgN8TT269AVpkZbz1e4iVpLo9onH+yvMEGEljdowOooJtsoelRai X-Received: by 2002:a6b:8bcf:: with SMTP id n198mr9946827iod.25.1625593097234; Tue, 06 Jul 2021 10:38:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625593097; cv=none; d=google.com; s=arc-20160816; b=MnK1mWBGbphdptlAO4Jkw2UDNt0ngfTNtBAMRDQpKx81JDurQBbg5nurxNR/ocd+Xt DSB9EmFpqzzBXS2YPiaexNhlMxOR4zwpMNXI2Xfh5FAKFHDrdL/psBY1Q+zlQ03zliZu g1Xa1fSJDfpAIILw9+g2PSUzpH3Lkm5kY/xf24jd3uZRj64s5N3bscz+58TSZl/5T2+c fHaOvOzbv4xwyHe7kOhbHoSYvTs4WTMXoTwaBkcNS83Ny2FttS2o+LzfmaIe3pWfz36B fmj1rHcGKThyy/hxv+/IwYzGWB5vheXZUzPxy908o7HMxoV+YRKfoecXUHzTZkQ55qRT yYyg== 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=UAvpvptXG6sMkQz+gf0B/1SxifjIkdjKCH8sm6hLVss=; b=0SujKS/Vj27WRUFjNxwPhBli4kQ8kFwk3wQFlfGkEZgSddo6ydG4qX5yHgBqWgmhe/ gUbq8y6/3VLVZKHn1AlwArVFB/SYHonKhNRgkfiUjilgbIpbuRamDhBHa8N5sCjWMcs1 B/jjDfIofvUE5ZCN6od1sU/uG3atTSHsRpK0h+Nlel2lQQ9eaBaTrCL4OQe/u2Dty9Cu SvIBJ6NzX5ugoU90HHPDJwMoDsDhIN4Sf6DHHqSCgmWIwNRf3VAWzyYUpt1k2nND5f/e 6cCjjGSmWPY+3VrpkvpCgiVRiVOZfZTPcj4qxQ7spFBYe0+E8UTsSoDW8aLmOWYsBbaC fkrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=VykMUkCU; 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 x4si9593448ilj.43.2021.07.06.10.38.03; Tue, 06 Jul 2021 10:38:17 -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=@ffwll.ch header.s=google header.b=VykMUkCU; 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 S230526AbhGFRir (ORCPT + 99 others); Tue, 6 Jul 2021 13:38:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45756 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230527AbhGFRiq (ORCPT ); Tue, 6 Jul 2021 13:38:46 -0400 Received: from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com [IPv6:2607:f8b0:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2D3DC061574 for ; Tue, 6 Jul 2021 10:36:07 -0700 (PDT) Received: by mail-ot1-x32b.google.com with SMTP id n99-20020a9d206c0000b029045d4f996e62so22382368ota.4 for ; Tue, 06 Jul 2021 10:36:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UAvpvptXG6sMkQz+gf0B/1SxifjIkdjKCH8sm6hLVss=; b=VykMUkCUg7WcIEKsR1v4RBrI2NiKhIwMgV+BRVA0h1SvtWJEdi9m1qCCccVZziliFj qBlBMH+TnRCrISUoXKFEYq86K2054AAs5F5INJ5GSJLHKD1Qf4iQDfLSgfcflxvogC6g kX++oMx5RF5cu+sGrdeqLrJSxn9RpJvqmO3q4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UAvpvptXG6sMkQz+gf0B/1SxifjIkdjKCH8sm6hLVss=; b=CDDST8gDhyN1f2+fu7C/KURorhqIc1siGiP9MtCDXpTwFnIAdFsnkefAyJGmkqb0o/ D5NN3t317HxFWL1t5Bj9KxNVVheJ9qpzwIM3+OpzwArXxICxV9EaM3uMv2Ek1YJhHaw7 Xbn3jt31xfidX66dfQoWgVMLt1W5jaoBy3EJ8YvD7ga6bZvxHI9xqPIgLsMbfVO+griM UVL0WH1WgupBPNoxw5sWle5NkGuGzZ9vkKFnYVUJeLgsjODHzFSSf01CpuwrL+t5Ie7Y BZMSWadVcq9iYpGyWPMbunFPXACjAuTZ1XdpxEYP4OWDzvWlfxvAux40UU7MPDcGdWrX ka9g== X-Gm-Message-State: AOAM533lsEWUnpKSQB5EX2B1ZXbB0viFXOzOkeueiB7hbXe95qpdJ4L5 axvh0p+wJjMDjMNDd2AkRglgeW6lN6640s+G7/UzyQ== X-Received: by 2002:a9d:27a4:: with SMTP id c33mr16150759otb.281.1625592967188; Tue, 06 Jul 2021 10:36:07 -0700 (PDT) MIME-Version: 1.0 References: <20210705130314.11519-1-ogabbay@kernel.org> <20210706142357.GN4604@ziepe.ca> <20210706152542.GP4604@ziepe.ca> <20210706162953.GQ4604@ziepe.ca> In-Reply-To: <20210706162953.GQ4604@ziepe.ca> From: Daniel Vetter Date: Tue, 6 Jul 2021 19:35:55 +0200 Message-ID: Subject: Re: [PATCH v4 0/2] Add p2p via dmabuf to habanalabs To: Jason Gunthorpe Cc: Oded Gabbay , Oded Gabbay , "Linux-Kernel@Vger. Kernel. Org" , Greg Kroah-Hartman , Sumit Semwal , =?UTF-8?Q?Christian_K=C3=B6nig?= , Gal Pressman , sleybo@amazon.com, Maling list - DRI developers , linux-rdma , Linux Media Mailing List , Doug Ledford , Dave Airlie , Alex Deucher , Leon Romanovsky , Christoph Hellwig , amd-gfx list , "moderated list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 6, 2021 at 6:29 PM Jason Gunthorpe wrote: > > On Tue, Jul 06, 2021 at 05:49:01PM +0200, Daniel Vetter wrote: > > > The other thing to keep in mind is that one of these drivers supports > > 25 years of product generations, and the other one doesn't. > > Sure, but that is the point, isn't it? To have an actually useful > thing you need all of this mess > > > > My argument is that an in-tree open kernel driver is a big help to > > > reverse engineering an open userspace. Having the vendors > > > collaboration to build that monstrous thing can only help the end goal > > > of an end to end open stack. > > > > Not sure where this got lost, but we're totally fine with vendors > > using the upstream driver together with their closed stack. And most > > of the drivers we do have in upstream are actually, at least in parts, > > supported by the vendor. E.g. if you'd have looked the drm/arm driver > > you picked is actually 100% written by ARM engineers. So kinda > > unfitting example. > > So the argument with Habana really boils down to how much do they need > to show in the open source space to get a kernel driver? You want to > see the ISA or compiler at least? Yup. We dont care about any of the fancy pieces you build on top, nor does the compiler need to be the optimizing one. Just something that's good enough to drive the hw in some demons to see how it works and all that. Generally that's also not that hard to reverse engineer, if someone is bored enough, the real fancy stuff tends to be in how you optimize the generated code. And make it fit into the higher levels properly. > That at least doesn't seem "extreme" to me. > > > > For instance a vendor with an in-tree driver has a strong incentive to > > > sort out their FW licensing issues so it can be redistributed. > > > > Nvidia has been claiming to try and sort out the FW problem for years. > > They even managed to release a few things, but I think the last one is > > 2-3 years late now. Partially the reason is that there don't have a > > stable api between the firmware and driver, it's all internal from the > > same source tree, and they don't really want to change that. > > Right, companies have no incentive to work in a sane way if they have > their own parallel world. I think drawing them part by part into the > standard open workflows and expectations is actually helpful to > everyone. Well we do try to get them on board part-by-part generally starting with the kernel and ending with a proper compiler instead of the usual llvm hack job, but for whatever reasons they really like their in-house stuff, see below for what I mean. > > > > I don't think the facts on the ground support your claim here, aside > > > > from the practical problem that nvidia is unwilling to even create an > > > > open driver to begin with. So there isn't anything to merge. > > > > > > The internet tells me there is nvgpu, it doesn't seem to have helped. > > > > Not sure which one you mean, but every once in a while they open up a > > few headers, or a few programming specs, or a small driver somewhere > > for a very specific thing, and then it dies again or gets obfuscated > > for the next platform, or just never updated. I've never seen anything > > that comes remotely to something complete, aside from tegra socs, > > which are fully supported in upstream afaik. > > I understand nvgpu is the tegra driver that people actualy > use. nouveau may have good tegra support but is it used in any actual > commercial product? I think it was almost the case. Afaik they still have their internal userspace stack working on top of nvidia, at least last year someone fixed up a bunch of issues in the tegra+nouveau combo to enable format modifiers properly across the board. But also nvidia is never going to sell you that as the officially supported thing, unless your ask comes back with enormous amounts of sold hardware. And it's not just nvidia, it's pretty much everyone. Like a soc company I don't want to know started collaborating with upstream and the reverse-engineered mesa team on a kernel driver, seems to work pretty well for current hardware. But for the next generation they decided it's going to be again only their in-house tree that completele ignores drivers/gpu/drm, and also tosses all the foundational work they helped build on the userspace side. And this is consistent across all companies, over the last 20 years I know of (often non-public) stories across every single company where they decided that all the time invested into community/upstream collaboration isn't useful anymore, we go all vendor solo for the next one. Most of those you luckily don't hear about anymore, all it results in the upstream driver being 1-2 years late or so. But even the good ones where we collaborate well can't seem to help themselves and want to throw it all away every few years. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch