From mboxrd@z Thu Jan 1 00:00:00 1970 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=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=no 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 DD86FC2D0CE for ; Sat, 25 Jan 2020 00:56:12 +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 B52F02071E for ; Sat, 25 Jan 2020 00:56:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B52F02071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 33DAD6E40D; Sat, 25 Jan 2020 00:56:12 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id E4BAC6E40D for ; Sat, 25 Jan 2020 00:56:10 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2020 16:56:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,359,1574150400"; d="scan'208";a="426790531" Received: from dceraolo-linux.fm.intel.com ([10.1.27.145]) by fmsmga005.fm.intel.com with ESMTP; 24 Jan 2020 16:56:10 -0800 From: Daniele Ceraolo Spurio To: intel-gfx@lists.freedesktop.org Date: Fri, 24 Jan 2020 16:55:31 -0800 Message-Id: <20200125005537.31860-1-daniele.ceraolospurio@intel.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Subject: [Intel-gfx] [RFC 0/6] Start separating GuC and execlists submission X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Note: this applies on top of my series to commit early to GuC [1]. Picking up from the feedback from my RFC series about splitting up intel_lrc.c [2], this series introduces GuC submission versions of most of the engine and context functions. As a starting point, the functions are still very similar to the execlists ones, but they will progressively diverge while we add the new submission logic. Some of the functions have been simplified by removing support for pre-gen11 cases as we only aim to enable GuC submission for gen11+; I've left comments and BUG_ONs to mark the reduces support spots to easily find them in case we ever want to enable GuC submission for older gens. Going slightly against the feedback from the previous series, I have kept the basic context and ring object management shared between execlists and GuC submission functions. The rationale is that those objects are HW-related and therefore their creation and their main attributes (e.g. context size) are not dependent on the submission method in any way. Handling of more SW constructs, like the timeline, has been duplicated. Still in theme of sharing, the flush and bb_start functions have also been re-used on the GuC side, but I'm not sure if keeping them in intel_lrc.c is the best solution. My medium-term plan is still the same as [2], i.e. split execlists_submission.c out of intel_lrc.c, with the latter holding the common code, but it might be worth moving the command emission to a dedicated file or to a header as inlines, like we already do in some cases. The code is still a bit rough and the series has been compile-tested only. I wanted to get some early comments about the direction before rebasing the rest of the GuC code on top of it and start testing. [1] https://patchwork.freedesktop.org/series/72031/ [2] https://patchwork.freedesktop.org/series/70787/ Cc: Chris Wilson Cc: Michal Wajdeczko Cc: John Harrison Cc: Matthew Brost Daniele Ceraolo Spurio (6): drm/i915/guc: Add guc-specific breadcrumb functions drm/i915/guc: Add request_alloc for guc_submission drm/i915/guc: Add engine->resume for GuC submission drm/i915/guc: Re-use lrc flush functions drm/i915/guc: Add initial context ops for GuC submission drm/i915/guc: Stop inheriting from execlists_set_default_submission drivers/gpu/drm/i915/gt/intel_lrc.c | 217 +++++----- drivers/gpu/drm/i915/gt/intel_lrc.h | 17 +- drivers/gpu/drm/i915/gt/selftest_lrc.c | 12 +- .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 378 +++++++++++++++++- 4 files changed, 496 insertions(+), 128 deletions(-) -- 2.24.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx