From patchwork Sun Sep 1 19:51:23 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Widawsky X-Patchwork-Id: 2852598 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 680C09F495 for ; Sun, 1 Sep 2013 19:53:07 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8655B20256 for ; Sun, 1 Sep 2013 19:53:06 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id A129D20254 for ; Sun, 1 Sep 2013 19:53:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7DF78E6750 for ; Sun, 1 Sep 2013 12:53:05 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 40090E63C1 for ; Sun, 1 Sep 2013 12:51:29 -0700 (PDT) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP; 01 Sep 2013 12:48:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos; i="4.89,1002,1367996400"; d="scan'208"; a="396767941" Received: from bolo_yeung.jf.intel.com ([10.7.197.58]) by orsmga002.jf.intel.com with ESMTP; 01 Sep 2013 12:51:27 -0700 From: Ben Widawsky To: intel-gfx@lists.freedesktop.org Date: Sun, 1 Sep 2013 12:51:23 -0700 Message-Id: <1378065086-28705-4-git-send-email-benjamin.widawsky@intel.com> X-Mailer: git-send-email 1.8.4 In-Reply-To: <1378065086-28705-1-git-send-email-benjamin.widawsky@intel.com> References: <1378065086-28705-1-git-send-email-benjamin.widawsky@intel.com> Cc: Ben Widawsky , Ben Widawsky Subject: [Intel-gfx] [PATCH 4/7] intel_gtt: Use function to get the physical address X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, 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 The GTT PTEs that the tool is trying to compare is really about addresses, and not the PTE itself. To accomplish this, make which calculates the physical address we actually want. This commit itself doesn't change any functionality; just the wording in the code. Signed-off-by: Ben Widawsky --- tools/intel_gtt.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/tools/intel_gtt.c b/tools/intel_gtt.c index 7885610..32a6618 100644 --- a/tools/intel_gtt.c +++ b/tools/intel_gtt.c @@ -34,16 +34,20 @@ #include "intel_gpu_tools.h" -#define INGTT(offset) (*(volatile uint32_t *)(gtt + (offset) / (KB(4) / 4))) - #define KB(x) ((x) * 1024) #define MB(x) ((x) * 1024 * 1024) +unsigned char *gtt; + +#define INGTT(offset) (*(volatile uint32_t *)(gtt + (offset) / (KB(4) / 4))) +static uint64_t get_phys(uint32_t pt_offset) +{ + return INGTT(pt_offset); +} int main(int argc, char **argv) { struct pci_device *pci_dev; int start, aper_size; - unsigned char *gtt; uint32_t devid; int flag[] = { PCI_DEV_MAP_FLAG_WRITE_COMBINE, @@ -90,15 +94,15 @@ int main(int argc, char **argv) aper_size = pci_dev->regions[2].size; for (start = 0; start < aper_size; start += KB(4)) { - uint32_t start_pte = INGTT(start); + uint32_t start_phys = INGTT(start); uint32_t end; int constant_length = 0; int linear_length = 0; /* Check if it's a linear sequence */ for (end = start + KB(4); end < aper_size; end += KB(4)) { - uint32_t end_pte = INGTT(end); - if (end_pte == start_pte + (end - start)) + uint32_t end_phys = INGTT(end); + if (end_phys == start_phys + (end - start)) linear_length++; else break; @@ -107,27 +111,27 @@ int main(int argc, char **argv) printf("0x%08x - 0x%08x: linear from " "0x%08x to 0x%08x\n", start, end - KB(4), - start_pte, start_pte + (end - start) - KB(4)); + start_phys, start_phys + (end - start) - KB(4)); start = end - KB(4); continue; } /* Check if it's a constant sequence */ for (end = start + KB(4); end < aper_size; end += KB(4)) { - uint32_t end_pte = INGTT(end); - if (end_pte == start_pte) + uint32_t end_phys = INGTT(end); + if (end_phys == start_phys) constant_length++; else break; } if (constant_length > 0) { printf("0x%08x - 0x%08x: constant 0x%08x\n", - start, end - KB(4), start_pte); + start, end - KB(4), start_phys); start = end - KB(4); continue; } - printf("0x%08x: 0x%08x\n", start, start_pte); + printf("0x%08x: 0x%08x\n", start, start_phys); } return 0;