From patchwork Fri Sep 28 13:11:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Hellstrom X-Patchwork-Id: 10619931 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1E3AA112B for ; Fri, 28 Sep 2018 13:12:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 047432A34F for ; Fri, 28 Sep 2018 13:12:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EA7392A366; Fri, 28 Sep 2018 13:12:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0CB5E2A35A for ; Fri, 28 Sep 2018 13:12:14 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 830F16E0FF; Fri, 28 Sep 2018 13:12:11 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from pio-pvt-msa3.bahnhof.se (pio-pvt-msa3.bahnhof.se [79.136.2.42]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7010E6E0FF for ; Fri, 28 Sep 2018 13:12:10 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by pio-pvt-msa3.bahnhof.se (Postfix) with ESMTP id 90E803F952; Fri, 28 Sep 2018 15:12:08 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at bahnhof.se Received: from pio-pvt-msa3.bahnhof.se ([127.0.0.1]) by localhost (pio-pvt-msa3.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gD2-Q9TJSvFJ; Fri, 28 Sep 2018 15:12:04 +0200 (CEST) Received: from mail1.shipmail.org (h-205-56.A357.priv.bahnhof.se [155.4.205.56]) (Authenticated sender: mb878879) by pio-pvt-msa3.bahnhof.se (Postfix) with ESMTPA id EF94A3F93B; Fri, 28 Sep 2018 15:12:03 +0200 (CEST) Received: from fedoratest.localdomain (localhost [127.0.0.1]) by mail1.shipmail.org (Postfix) with ESMTP id 9BB4E3606A6; Fri, 28 Sep 2018 15:12:03 +0200 (CEST) From: Thomas Hellstrom To: airlied@redhat.com, airlied@gmail.com Subject: [git pull] vmwgfx-next Date: Fri, 28 Sep 2018 15:11:57 +0200 Message-Id: <20180928131157.2810-1-thellstrom@vmware.com> X-Mailer: git-send-email 2.19.0.rc1 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pv-drivers@vmware.com, Thomas Hellstrom , linux-graphics-maintainer@vmware.com, dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Hi, Dave I realize this is probably too late for the next merge window. If that's the case, then we can just postpone it for 4.21. Mostly code reorganizations and optimizations for vmwgfx. - Move TTM code that's only used by vmwgfx to vmwgfx - Break out the vmwgfx buffer- and resource validation code to a separate source file - Get rid of a number of atomic operations during command buffer validation. The following changes since commit 36c9c3c91128e2b892c9be0dd9ee9bd82cbe82ad: Merge branch 'drm-next-4.20' of git://people.freedesktop.org/~agd5f/linux into drm-next (2018-09-21 09:52:53 +1000) are available in the Git repository at: git://people.freedesktop.org/~thomash/linux vmwgfx-next for you to fetch changes up to e8c66efbfe3a2e3cbc573f2474a3d51690f1b857: drm/vmwgfx: Make user resource lookups reference-free during validation (2018-09-28 08:57:09 +0200) ---------------------------------------------------------------- Thomas Hellstrom (19): drm/ttm, drm/vmwgfx: Move the lock- and object functionality to the vmwgfx driver drm/vmwgfx: Add a validation module v2 drm/vmwgfx: Modify the resource validation interface drm/vmwgfx: Adapt execbuf to the new validation api drm/vmwgfx: Use new validation interface for the modesetting code v2 drm/vmwgfx: Use a validation context allocator for relocations and validations drm/vmwgfx: Reduce the size of buffer object relocations drm/vmwgfx: Replace unconditional mutex unlocked warnings with lockdep counterpart drm/vmwgfx: Remove the resource avail field drm/vmwgfx: Remove the user resource destructor check drm/vmwgfx: Make the object handles idr-generated drm/vmwgfx: Look up objects without taking a reference drm/ttm: Export ttm_bo_get_unless_zero() drm/vmwgfx: Adapt validation code for reference-free lookups drm/vmwgfx: Look up user buffer objects without taking a reference drm/vmwgfx: Make buffer object lookups reference-free during validation drm/vmwgfx: Don't refcount command-buffer managed resource lookups during command buffer validation drm/vmwgfx: Don't refcount cotable lookups during command buffer validation drm/vmwgfx: Make user resource lookups reference-free during validation drivers/gpu/drm/ttm/Makefile | 4 +- drivers/gpu/drm/ttm/ttm_bo_vm.c | 3 +- drivers/gpu/drm/vmwgfx/Makefile | 4 +- drivers/gpu/drm/{ttm => vmwgfx}/ttm_lock.c | 15 +- .../drm/ttm => drivers/gpu/drm/vmwgfx}/ttm_lock.h | 0 drivers/gpu/drm/{ttm => vmwgfx}/ttm_object.c | 97 +- .../ttm => drivers/gpu/drm/vmwgfx}/ttm_object.h | 31 +- drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 50 +- drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c | 3 +- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 23 +- drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 147 ++- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 1288 ++++++++------------ drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 7 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 199 +-- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 24 +- drivers/gpu/drm/vmwgfx/vmwgfx_prime.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 124 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h | 7 +- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 48 +- drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 25 +- drivers/gpu/drm/vmwgfx/vmwgfx_simple_resource.c | 7 +- drivers/gpu/drm/vmwgfx/vmwgfx_so.c | 11 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 31 +- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 20 +- drivers/gpu/drm/vmwgfx/vmwgfx_validation.c | 770 ++++++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_validation.h | 227 ++++ include/drm/ttm/ttm_bo_api.h | 18 + 30 files changed, 1966 insertions(+), 1229 deletions(-) rename drivers/gpu/drm/{ttm => vmwgfx}/ttm_lock.c (94%) rename {include/drm/ttm => drivers/gpu/drm/vmwgfx}/ttm_lock.h (100%) rename drivers/gpu/drm/{ttm => vmwgfx}/ttm_object.c (90%) rename {include/drm/ttm => drivers/gpu/drm/vmwgfx}/ttm_object.h (94%) create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_validation.c create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_validation.h