From patchwork Sat May 10 03:59:37 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Widawsky X-Patchwork-Id: 4146391 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 E5DC1BFF02 for ; Sat, 10 May 2014 04:02:26 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 17A54201F7 for ; Sat, 10 May 2014 04:02:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 35147201DE for ; Sat, 10 May 2014 04:02:25 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9E3C06F09D; Fri, 9 May 2014 21:02:24 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id C73556F094 for ; Fri, 9 May 2014 21:02:22 -0700 (PDT) Received: by mail.bwidawsk.net (Postfix, from userid 5001) id D28C758091; Fri, 9 May 2014 21:02:21 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from ironside.intel.com (c-24-21-100-90.hsd1.or.comcast.net [24.21.100.90]) by mail.bwidawsk.net (Postfix) with ESMTPSA id 5359858095; Fri, 9 May 2014 21:00:25 -0700 (PDT) From: Ben Widawsky To: Intel GFX Date: Fri, 9 May 2014 20:59:37 -0700 Message-Id: <1399694391-3935-43-git-send-email-benjamin.widawsky@intel.com> X-Mailer: git-send-email 1.9.2 In-Reply-To: <1399694391-3935-1-git-send-email-benjamin.widawsky@intel.com> References: <1399694391-3935-1-git-send-email-benjamin.widawsky@intel.com> Cc: Ben Widawsky Subject: [Intel-gfx] [PATCH 42/56] TESTME: Either drop the last patch or fix it. 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-Virus-Scanned: ClamAV using ClamSMTP I was getting unexplainable hangs with the last patch, even though I think it should be correct. As the subject says, should this ever get merged, it needs to be coordinated with the patch this reverts. Revert "drm/i915/bdw: Optimize PDP loads" This reverts commit 64053129b5cbd3a5f87dab27d026c17efbdf0387. --- drivers/gpu/drm/i915/i915_gem_gtt.c | 20 -------------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 1 - 2 files changed, 21 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index 3ea0c7d..d8bb4dc 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -438,20 +438,8 @@ static int gen8_mm_switch(struct i915_hw_ppgtt *ppgtt, struct intel_ring_buffer *ring, bool synchronous) { - struct drm_i915_private *dev_priv = ring->dev->dev_private; int i, ret; - /* The RCS ring gets reloaded by the hardware context state. So we only - * need to actually reload if one of the page directory pointer have - * changed, or it's !RCS - * - * Aliasing PPGTT remains special, as we do not track it's - * reloading needs. - */ - if (ppgtt != dev_priv->mm.aliasing_ppgtt && - ring->id == RCS && !ppgtt->pdp.needs_reload) - return 0; - for (i = GEN8_LEGACY_PDPES - 1; i >= 0; i--) { struct i915_pagedir *pd = ppgtt->pdp.pagedirs[i]; dma_addr_t addr = pd ? pd->daddr : ppgtt->scratch_pt->daddr; @@ -462,9 +450,6 @@ static int gen8_mm_switch(struct i915_hw_ppgtt *ppgtt, return ret; } - - ppgtt->pdp.needs_reload = 0; - return 0; } @@ -666,7 +651,6 @@ static void gen8_teardown_va_range(struct i915_address_space *vm, free_pd_single(pd, vm->dev); ppgtt->pdp.pagedirs[pdpe] = NULL; WARN_ON(!test_and_clear_bit(pdpe, ppgtt->pdp.used_pdpes)); - ppgtt->pdp.needs_reload = 1; } } } @@ -917,8 +901,6 @@ static int gen8_alloc_va_range(struct i915_address_space *vm, } set_bit(pdpe, ppgtt->pdp.used_pdpes); - if (test_and_set_bit(pdpe, ppgtt->pdp.used_pdpes)) - ppgtt->pdp.needs_reload = 1; gen8_map_pagetable_range(pd, start, length, ppgtt->base.dev); } @@ -955,8 +937,6 @@ static int gen8_ppgtt_init_common(struct i915_hw_ppgtt *ppgtt, uint64_t size) ppgtt->switch_mm = gen8_mm_switch; ppgtt->base.insert_entries = gen8_ppgtt_insert_entries; - ppgtt->pdp.needs_reload = 1; - ppgtt->scratch_pd = alloc_pt_scratch(ppgtt->base.dev); if (IS_ERR(ppgtt->scratch_pd)) return PTR_ERR(ppgtt->scratch_pd); diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h index dd561f3..b3d0776 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.h +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h @@ -198,7 +198,6 @@ struct i915_pagedirpo { /* struct page *page; */ DECLARE_BITMAP(used_pdpes, GEN8_LEGACY_PDPES); struct i915_pagedir *pagedirs[GEN8_LEGACY_PDPES]; - unsigned needs_reload:1; }; struct i915_address_space {