From patchwork Fri Mar 21 18:48:20 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Widawsky X-Patchwork-Id: 3876021 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id A0737BF540 for ; Fri, 21 Mar 2014 18:48:42 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C44FF20203 for ; Fri, 21 Mar 2014 18:48:41 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 9E5FE20259 for ; Fri, 21 Mar 2014 18:48:40 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B71D26E3FA; Fri, 21 Mar 2014 11:48:39 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 49B586E408 for ; Fri, 21 Mar 2014 11:48:34 -0700 (PDT) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP; 21 Mar 2014 11:48:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,704,1389772800"; d="scan'208";a="504097565" Received: from unknown (HELO ironside.amr.corp.intel.com) ([10.255.12.224]) by fmsmga002.fm.intel.com with ESMTP; 21 Mar 2014 11:48:32 -0700 From: Ben Widawsky To: Intel GFX Date: Fri, 21 Mar 2014 11:48:20 -0700 Message-Id: <1395427701-13434-12-git-send-email-benjamin.widawsky@linux.intel.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1395427701-13434-1-git-send-email-benjamin.widawsky@linux.intel.com> References: <1395427701-13434-1-git-send-email-benjamin.widawsky@linux.intel.com> Cc: stable@vger.kernel.org, Ben Widawsky Subject: [Intel-gfx] [PATCH 11/12] drm/i915/bdw: Use scratch page table for GEN8 PPGTT X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Ben Widawsky I'm not clear if the hardware is still subject to the same prefetching issues that made us use a scratch page in the first place. In either case, we're using garbage with the current code (we will end up using offset 0). This may be the cause of our current gem_cpu_reloc regression with PPGTT. I cannot test it at the moment. Signed-off-by: Ben Widawsky Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter [BDW 3.14 backport] Cc: stable@vger.kernel.org Signed-off-by: Ben Widawsky --- drivers/gpu/drm/i915/i915_gem_gtt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index 40a2b36..8cc9398 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -359,6 +359,7 @@ static void gen8_ppgtt_cleanup(struct i915_address_space *vm) **/ static int gen8_ppgtt_init(struct i915_hw_ppgtt *ppgtt, uint64_t size) { + struct drm_i915_private *dev_priv = ppgtt->base.dev->dev_private; struct page *pt_pages; int i, j, ret = -ENOMEM; const int max_pdp = DIV_ROUND_UP(size, 1 << 30); @@ -389,6 +390,7 @@ static int gen8_ppgtt_init(struct i915_hw_ppgtt *ppgtt, uint64_t size) ppgtt->base.clear_range = gen8_ppgtt_clear_range; ppgtt->base.insert_entries = gen8_ppgtt_insert_entries; ppgtt->base.cleanup = gen8_ppgtt_cleanup; + ppgtt->base.scratch = dev_priv->gtt.base.scratch; ppgtt->base.start = 0; ppgtt->base.total = ppgtt->num_pt_pages * GEN8_PTES_PER_PAGE * PAGE_SIZE;