From patchwork Wed Mar 24 21:10:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 12162383 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A786EC433DB for ; Wed, 24 Mar 2021 21:10:51 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EBEC3619F8 for ; Wed, 24 Mar 2021 21:10:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EBEC3619F8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 83FE16E364; Wed, 24 Mar 2021 21:10:49 +0000 (UTC) Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4311B6E364 for ; Wed, 24 Mar 2021 21:10:48 +0000 (UTC) Received: by mail-wm1-x335.google.com with SMTP id f22-20020a7bc8d60000b029010c024a1407so1984825wml.2 for ; Wed, 24 Mar 2021 14:10:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Pjm3lSEUkPFnvj4h3fBO00NgJVgVJDDTyTJdMOuNubc=; b=ESYUM2o75ZyedJVyltWn9GPRZKHp2ty46wRJVNV8BH1S8HOwY5RhvzDWqVJmWAvuJY 8GbXJ6ouueJ76Tv4dymgqaF5DhFVs9g/uh+ozI8xQyEL8s2mVmOFt1R5VWHnz2leMVit aw2LGfaKUS0YAXT3wEm/DnHmEs1X9CLy4D7zs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Pjm3lSEUkPFnvj4h3fBO00NgJVgVJDDTyTJdMOuNubc=; b=XMTUUAsFJcI8D90Yfp9r2tTC/1Ce0owbcVEdp1fyqqEHD4d7J8tgs6E+/F3c+lcupZ CL4VVVzPKdPEPLHc/0dxQQzEWdXT4xlHJ9NqYEYGLhuAlzRZovmV5GjM0XI5L4L6lO83 EwwLJQf7KzcnGA+tuGgyWOKQdh7l2VcODvVfzqKTPs3nkwiC6xojX7udyqm1tIHdvj9q 8l1fn3PHAZkMa6dkaGRdPFRCVr5easBA0KLg4UgDxtFu4Koy5r6Ye4+7g7iM8EH9Q3bf nf56SG1pXB3EmRseG0aIkdu/87H9Xo3yhvhzdR8+PoZcxDE66NFPUaW+HOjQJtauQdwZ ltrg== X-Gm-Message-State: AOAM531D+gpjAP7W6kcztM/R6ezeLG01YpKhgev8NR6occM2kKy4fy0j baBZrCdXI9xe18QS1kiSWaOhA4WcW5DhRp70 X-Google-Smtp-Source: ABdhPJxR5joVKHRVShY0qhPx4p+Je9dDIF87SBRD5PyxhcUcGXNUN+xHEO7YiUMtfyq3uA/J2M9bKQ== X-Received: by 2002:a7b:c087:: with SMTP id r7mr4727280wmh.110.1616620246956; Wed, 24 Mar 2021 14:10:46 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id k4sm5343736wrd.9.2021.03.24.14.10.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Mar 2021 14:10:46 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 1/2] drm/i915: add gem/gt TODO Date: Wed, 24 Mar 2021 22:10:40 +0100 Message-Id: <20210324211041.1354941-1-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.31.0 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Daniel Vetter , Intel Graphics Development , Jason Ekstrand , Rodrigo Vivi , Dave Airlie Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" We've discussed a bit how to get the gem/gt team better integrated and collaborate more with the wider community and agreed to the following: - all gem/gt patches are reviewed on dri-devel for now. That's overkill, but in the past there was definitely too little of that. - i915-gem folks are encouraged to cross review core patches from other teams - big features (especially uapi changes) need to be discussed in an rfc patch that documents the interface and big picture design, before we get lost in the details of the code - Also a rough TODO (can be refined as we go ofc) to get gem/gt back on track, like we've e.g. done with DAL/DC to get that in shape. v2: - add dma_fence annotations (Dave) - tasklet helpers (Jani on irc) There was also a discussion about moving these into gitlab issues, or gitlab issues as additional discussion place at least. For now it's just the TODO file Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: Jason Ekstrand Cc: Dave Airlie Acked-by: Dave Airlie Acked-by: Rodrigo Vivi Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/TODO.txt | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 drivers/gpu/drm/i915/TODO.txt diff --git a/drivers/gpu/drm/i915/TODO.txt b/drivers/gpu/drm/i915/TODO.txt new file mode 100644 index 000000000000..81a82c9c203f --- /dev/null +++ b/drivers/gpu/drm/i915/TODO.txt @@ -0,0 +1,41 @@ +gem/gt TODO items +----------------- + +- For discrete memory manager, merge enough dg1 to be able to refactor it to + TTM. Then land pci ids (just in case that turns up an uapi problem). TTM has + improved a lot the past 2 years, there's no reason anymore not to use it. + +- Come up with a plan what to do with drm/scheduler and how to get there. + +- Roll out dma_fence critical section annotations. + +- There's a lot of complexity added past few years to make relocations faster. + That doesn't make sense given hw and gpu apis moved away from this model years + ago: + 1. Land a modern pre-bound uapi like VM_BIND + 2. Any complexity added in this area past few years which can't be justified + with VM_BIND using userspace should be removed. Looking at amdgpu dma_resv on + the bo and vm, plus some lru locks is all that needed. No complex rcu, + refcounts, caching, ... on everything. + This is the matching task on the vm side compared to ttm/dma_resv on the + backing storage side. + +- i915_sw_fence seems to be the main structure for the i915-gem dma_fence model. + How-to-dma_fence is core and drivers really shouldn't build their own world + here, treating everything else as a fixed platform. i915_sw_fence concepts + should be moved to dma_fence, drm/scheduler or atomic commit helpers. Or + removed if dri-devel consensus is that it's not a good idea. Once that's done + maybe even remove it if there's nothing left. + +Smaller things: +- i915_utils.h needs to be moved to the right places. + +- dma_fence_work should be in drivers/dma-buf + +- i915_mm.c should be moved to the right places. Some of the helpers also look a + bit fishy: + + https://lore.kernel.org/linux-mm/20210301083320.943079-1-hch@lst.de/ + +- tasklet helpers in i915_gem.h also look a bit misplaced and should + probably be moved to tasklet headers. From patchwork Wed Mar 24 21:10:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 12162385 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4E98C433DB for ; Wed, 24 Mar 2021 21:10:56 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 369C061A09 for ; Wed, 24 Mar 2021 21:10:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 369C061A09 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BE1876EA44; Wed, 24 Mar 2021 21:10:49 +0000 (UTC) Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by gabe.freedesktop.org (Postfix) with ESMTPS id 33CD36EA44 for ; Wed, 24 Mar 2021 21:10:49 +0000 (UTC) Received: by mail-wm1-x336.google.com with SMTP id f22-20020a7bc8d60000b029010c024a1407so1984841wml.2 for ; Wed, 24 Mar 2021 14:10:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xGStlxqAvQR3fuObhoTNL58Dwx4zHJZi3lJkR5FRsGk=; b=Jj/jpTUzcmmqM7AkESib7LsQgXkV3puJ7LxSBMaHQAeDW0uf26jqzXo8At5nAI97p+ WRld2EUYLUXsuTfv5FH9LDbG0iZZ+bs6VwoyZiOxwUpOrY/Mr4CLHVXjLYqAvCDAi538 eG9dVvTQYaBgoOUnMktWPOdgw57V0/lpeyvmY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=xGStlxqAvQR3fuObhoTNL58Dwx4zHJZi3lJkR5FRsGk=; b=sFaEBdY19ldW5pFpK0+4hWkaOsHw3koCPAOXgB4cVT9mMg9oR5QTQJpLimpoIBhRTh zK3W4sz3WFso+IIFXGui99XS8f7S/aKlShAB4t5SqW26fJrlYFakze4Pb1H5FEdnnlg/ b6VQ47vlLQpiklxkC0U6RfJ41igOedXgIdOoyR6JG8YVc5/t7nZ84czWPA6t+AwfDTZy +5gotmYyt8spy9nUKPEY8sihCawbqYNqDbXcecI5uwc9y8/GDlggJCp8p3awy2V1iT7R vGoTeNa6KM0TTpL+0GyNFRBgbMfvehAG1NzgkKLaDs5/D4IOsUValvux/go2SicE4ddg BQcA== X-Gm-Message-State: AOAM531IVQ4zRKiKt5YkNarUMZo8OTNcstvmgQo8rW19x1OHZrLtQy07 47AvAkLfojeFCiq36iLgZdJCYbMXnEeCuR0X X-Google-Smtp-Source: ABdhPJw9zQ9FHiIrOF4l1DSunVZ4O1l6WEd8btHlGjCMzAi/Xrn0LjUd6tarLCDJ0dcb4B1DIplhng== X-Received: by 2002:a05:600c:1550:: with SMTP id f16mr4715522wmg.97.1616620247888; Wed, 24 Mar 2021 14:10:47 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id k4sm5343736wrd.9.2021.03.24.14.10.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Mar 2021 14:10:47 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 2/2] drm/doc: Add RFC section Date: Wed, 24 Mar 2021 22:10:41 +0100 Message-Id: <20210324211041.1354941-2-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210324211041.1354941-1-daniel.vetter@ffwll.ch> References: <20210324211041.1354941-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Daniel Vetter , Intel Graphics Development , Jason Ekstrand , Rodrigo Vivi , Dave Airlie Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Motivated by the pre-review process for i915 gem/gt features, but probably useful in general for complex stuff. v2: Add reminder to not forget userspace projects in the discussion (Simon, Jason) Cc: Simon Ser Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: Jason Ekstrand Cc: Dave Airlie Acked-by: Rodrigo Vivi Acked-by: Dave Airlie Signed-off-by: Daniel Vetter Acked-by: Jason Ekstrand Acked-by: Simon Ser --- Documentation/gpu/index.rst | 1 + Documentation/gpu/rfc.rst | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 Documentation/gpu/rfc.rst diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst index c9a51e3bfb5a..df58cb826d68 100644 --- a/Documentation/gpu/index.rst +++ b/Documentation/gpu/index.rst @@ -16,6 +16,7 @@ Linux GPU Driver Developer's Guide vga-switcheroo vgaarbiter todo + rfc .. only:: subproject and html diff --git a/Documentation/gpu/rfc.rst b/Documentation/gpu/rfc.rst new file mode 100644 index 000000000000..a8621f7dab8b --- /dev/null +++ b/Documentation/gpu/rfc.rst @@ -0,0 +1,17 @@ +=============== +GPU RFC Section +=============== + +For complex work, especially new uapi, it is often good to nail the high level +design issues before getting lost in the code details. This section is meant to +host such documentation: + +* Each RFC should be a section in this file, explaining the goal and main design + considerations. Especially for uapi make sure you Cc: all relevant project + mailing lists and involved people outside of dri-devel. + +* For uapi structures add a file to this directory with and then pull the + kerneldoc in like with real uapi headers. + +* Once the code has landed move all the documentation to the right places in + the main core, helper or driver sections.