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=-12.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 A8DB0C43461 for ; Fri, 4 Sep 2020 12:59:59 +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 77E1D2073B for ; Fri, 4 Sep 2020 12:59:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 77E1D2073B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 0A1B56EB9D; Fri, 4 Sep 2020 12:59:59 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 998DD6EB9D for ; Fri, 4 Sep 2020 12:59:57 +0000 (UTC) IronPort-SDR: 8Jn8f1thYkHD9s0/wm1bqtFPE5wmR8RZSX0Lo9RapKmymmd1oCh8KCzLny3Iu9V/Sna9AHU6lF 4LnoHgebIfqg== X-IronPort-AV: E=McAfee;i="6000,8403,9733"; a="175788971" X-IronPort-AV: E=Sophos;i="5.76,389,1592895600"; d="scan'208";a="175788971" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2020 05:59:57 -0700 IronPort-SDR: HVNNwboy5W+gvOa8iYj1U3BpmIy/eBGfh3ebac57Xit2aDcv1Y8etCMXvi1Kq61WcIkIrWCel9 OpY1C8Xgjtpw== X-IronPort-AV: E=Sophos;i="5.76,389,1592895600"; d="scan'208";a="478478879" Received: from arielsig-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.251.165.178]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2020 05:59:55 -0700 From: Tvrtko Ursulin To: Intel-gfx@lists.freedesktop.org Date: Fri, 4 Sep 2020 13:59:30 +0100 Message-Id: <20200904125934.133475-6-tvrtko.ursulin@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200904125934.133475-1-tvrtko.ursulin@linux.intel.com> References: <20200904125934.133475-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 5/9] drm/i915: Track runtime spent in closed GEM contexts 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" From: Tvrtko Ursulin As GEM contexts are closed we want to have the DRM client remember how much GPU time they used (per class) so later we can used it for smarter purposes. Signed-off-by: Tvrtko Ursulin --- drivers/gpu/drm/i915/gem/i915_gem_context.c | 12 +++++++++++- drivers/gpu/drm/i915/i915_drm_client.h | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c index 05f3a6fd9be4..dcaca4fce5fb 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c @@ -351,8 +351,18 @@ static void i915_gem_context_free(struct i915_gem_context *ctx) GEM_BUG_ON(!i915_gem_context_is_closed(ctx)); - if (client) + if (client) { + unsigned int i; + + /* Transfer accumulated runtime to the parent drm client. */ + BUILD_BUG_ON(ARRAY_SIZE(client->past_runtime) != + ARRAY_SIZE(ctx->past_runtime)); + for (i = 0; i < ARRAY_SIZE(client->past_runtime); i++) + atomic64_add(atomic64_read(&ctx->past_runtime[i]), + &client->past_runtime[i]); + i915_drm_client_put(client); + } spin_lock(&ctx->i915->gem.contexts.lock); list_del(&ctx->link); diff --git a/drivers/gpu/drm/i915/i915_drm_client.h b/drivers/gpu/drm/i915/i915_drm_client.h index 9f39b7407a5d..874b511c3217 100644 --- a/drivers/gpu/drm/i915/i915_drm_client.h +++ b/drivers/gpu/drm/i915/i915_drm_client.h @@ -16,6 +16,8 @@ #include #include +#include "gt/intel_engine_types.h" + struct i915_drm_clients { struct xarray xarray; u32 next_id; @@ -42,6 +44,11 @@ struct i915_drm_client { struct device_attribute pid; struct device_attribute name; } attr; + + /** + * @past_runtime: Accumulation of pphwsp runtimes from closed contexts. + */ + atomic64_t past_runtime[MAX_ENGINE_CLASS + 1]; }; void i915_drm_clients_init(struct i915_drm_clients *clients); -- 2.25.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx