Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp1908434imm; Sat, 23 Jun 2018 05:24:46 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLSb3hfq5Ae2I+q6jZoAyeg2r0qbICLHvJT7lp4d/nFWvSPSMUNpI8izkuf1RBZ/Y/gnjUt X-Received: by 2002:a17:902:42a3:: with SMTP id h32-v6mr5353780pld.72.1529756686433; Sat, 23 Jun 2018 05:24:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529756686; cv=none; d=google.com; s=arc-20160816; b=YpkxyC0D8v6XxyHorP2WwZdOrCRCGwGgOz0loZ7CskKp8Lv7rSSVRe4474xicsCg1W 6d+4J4KkvqykqrHNa9rL3af417VBViRhdOGUArPjxqmOSrpXp1xdabM1B0h1sQmkeJgb KPxSJS1vE6vPt7JywloTn/dsCWyGNh5EEgKA7i41tb4ZExmS1N69NYZRSggcO+cgHmxh xUdlT1h3heoxeJBHOTZYfw1ZcXCuNTSCf9nEJ78fGH9yYVCCNS3Bv62vMFPkdUARPOZR SmgcjwLqMK537+NylHzCpO+kXCO+0JVeIJfHX0/GwvWkEfhQxv8RhLiIJEegYWWSYTi5 SRLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-disposition :content-transfer-encoding:mime-version:robot-unsubscribe:robot-id :git-commit-id:subject:to:references:in-reply-to:reply-to:cc :message-id:from:date:arc-authentication-results; bh=GdAiACZYC0KY1wnB0EWpf9t1fZ4+k19y9Y7pp/TjGcA=; b=U9OJGyHk9zMlckEMXL9Fizd24FtjNboD/JYLhQcJ0YXIOfC+Nx5D8mEJnJZUuqU3hf XKIrP273shUUgqifJiJ2RyuFFHjD46N3p/3jGvzEgrEB8N6b+wSt/xLWDxNdkpgRV13e Zrme6AG455c1EXZUGNDZfLOghaIhXTYOV47Cd7ikD7jCzHk4ipKc2nw/0uTvDYCSSs1M 8+HDb86ENANnY25DM52fBDqsW7ek7vXmr/ks2VVF1Vw9iLyCL4BXDPP6yQeLvDubSv2E u0O+cBIFmEdCOPFqRdRt870TkVn65ji3r7OlKrF2a4WAYYvWzBAzd8Q36FExo02j6a+T +ssg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v7-v6si9442027plp.304.2018.06.23.05.24.31; Sat, 23 Jun 2018 05:24:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752083AbeFWMXw (ORCPT + 99 others); Sat, 23 Jun 2018 08:23:52 -0400 Received: from terminus.zytor.com ([198.137.202.136]:44227 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751707AbeFWMXu (ORCPT ); Sat, 23 Jun 2018 08:23:50 -0400 Received: from terminus.zytor.com (localhost [127.0.0.1]) by terminus.zytor.com (8.15.2/8.15.2) with ESMTPS id w5NCNkfD465506 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 23 Jun 2018 05:23:46 -0700 Received: (from tipbot@localhost) by terminus.zytor.com (8.15.2/8.15.2/Submit) id w5NCNkm6465503; Sat, 23 Jun 2018 05:23:46 -0700 Date: Sat, 23 Jun 2018 05:23:46 -0700 X-Authentication-Warning: terminus.zytor.com: tipbot set sender to tipbot@zytor.com using -f From: tip-bot for Reinette Chatre Message-ID: Cc: hpa@zytor.com, mingo@kernel.org, linux-kernel@vger.kernel.org, reinette.chatre@intel.com, tglx@linutronix.de Reply-To: linux-kernel@vger.kernel.org, reinette.chatre@intel.com, mingo@kernel.org, hpa@zytor.com, tglx@linutronix.de In-Reply-To: <5ece82869b651c2178b278e00bca959f7626b6e9.1529706536.git.reinette.chatre@intel.com> References: <5ece82869b651c2178b278e00bca959f7626b6e9.1529706536.git.reinette.chatre@intel.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/cache] x86/intel_rdt: Resctrl files reflect pseudo-locked information Git-Commit-ID: f4e80d67a527469245f391976d8665f934a16205 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, DATE_IN_FUTURE_96_Q autolearn=ham autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on terminus.zytor.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: f4e80d67a527469245f391976d8665f934a16205 Gitweb: https://git.kernel.org/tip/f4e80d67a527469245f391976d8665f934a16205 Author: Reinette Chatre AuthorDate: Fri, 22 Jun 2018 15:42:23 -0700 Committer: Thomas Gleixner CommitDate: Sat, 23 Jun 2018 13:03:50 +0200 x86/intel_rdt: Resctrl files reflect pseudo-locked information Information about resources as well as resource groups are contained in a variety of resctrl files. Now that pseudo-locked regions can be created the files can be updated to present appropriate information to the user. Update the resource group's schemata file to show only the information of the pseudo-locked region. Update the resource group's size file to show the size in bytes of only the pseudo-locked region. Update the bit_usage file to use the letter 'P' for all pseudo-locked regions. Signed-off-by: Reinette Chatre Signed-off-by: Thomas Gleixner Cc: fenghua.yu@intel.com Cc: tony.luck@intel.com Cc: vikas.shivappa@linux.intel.com Cc: gavin.hindman@intel.com Cc: jithu.joseph@intel.com Cc: dave.hansen@intel.com Cc: hpa@zytor.com Link: https://lkml.kernel.org/r/5ece82869b651c2178b278e00bca959f7626b6e9.1529706536.git.reinette.chatre@intel.com --- arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c | 3 +++ arch/x86/kernel/cpu/intel_rdt_rdtgroup.c | 31 +++++++++++++++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c b/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c index 6f4c0002b2c1..af358ca05160 100644 --- a/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c +++ b/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c @@ -402,6 +402,9 @@ int rdtgroup_schemata_show(struct kernfs_open_file *of, if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKSETUP) { for_each_alloc_enabled_rdt_resource(r) seq_printf(s, "%s:uninitialized\n", r->name); + } else if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED) { + seq_printf(s, "%s:%d=%x\n", rdtgrp->plr->r->name, + rdtgrp->plr->d->id, rdtgrp->plr->cbm); } else { closid = rdtgrp->closid; for_each_alloc_enabled_rdt_resource(r) { diff --git a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c index d3fb7bd8cbba..f301919ae9b2 100644 --- a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c +++ b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c @@ -771,14 +771,16 @@ static int rdt_shareable_bits_show(struct kernfs_open_file *of, * H - currently used by hardware only but available for software use * S - currently used and shareable by software only * E - currently used exclusively by one resource group + * P - currently pseudo-locked by one resource group */ static int rdt_bit_usage_show(struct kernfs_open_file *of, struct seq_file *seq, void *v) { struct rdt_resource *r = of->kn->parent->priv; - u32 sw_shareable, hw_shareable, exclusive; + u32 sw_shareable = 0, hw_shareable = 0; + u32 exclusive = 0, pseudo_locked = 0; struct rdt_domain *dom; - int i, hwb, swb, excl; + int i, hwb, swb, excl, psl; enum rdtgrp_mode mode; bool sep = false; u32 *ctrl; @@ -803,12 +805,15 @@ static int rdt_bit_usage_show(struct kernfs_open_file *of, case RDT_MODE_EXCLUSIVE: exclusive |= *ctrl; break; + case RDT_MODE_PSEUDO_LOCKSETUP: /* - * Temporarily handle pseudo-locking enums - * to silence compile warnings until handling - * added in later patches. + * RDT_MODE_PSEUDO_LOCKSETUP is possible + * here but not included since the CBM + * associated with this CLOSID in this mode + * is not initialized and no task or cpu can be + * assigned this CLOSID. */ - case RDT_MODE_PSEUDO_LOCKSETUP: + break; case RDT_MODE_PSEUDO_LOCKED: case RDT_NUM_MODES: WARN(1, @@ -817,9 +822,11 @@ static int rdt_bit_usage_show(struct kernfs_open_file *of, } } for (i = r->cache.cbm_len - 1; i >= 0; i--) { + pseudo_locked = dom->plr ? dom->plr->cbm : 0; hwb = test_bit(i, (unsigned long *)&hw_shareable); swb = test_bit(i, (unsigned long *)&sw_shareable); excl = test_bit(i, (unsigned long *)&exclusive); + psl = test_bit(i, (unsigned long *)&pseudo_locked); if (hwb && swb) seq_putc(seq, 'X'); else if (hwb && !swb) @@ -828,6 +835,8 @@ static int rdt_bit_usage_show(struct kernfs_open_file *of, seq_putc(seq, 'S'); else if (excl) seq_putc(seq, 'E'); + else if (psl) + seq_putc(seq, 'P'); else /* Unused bits remain */ seq_putc(seq, '0'); } @@ -1147,6 +1156,15 @@ static int rdtgroup_size_show(struct kernfs_open_file *of, return -ENOENT; } + if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED) { + seq_printf(s, "%*s:", max_name_width, rdtgrp->plr->r->name); + size = rdtgroup_cbm_to_size(rdtgrp->plr->r, + rdtgrp->plr->d, + rdtgrp->plr->cbm); + seq_printf(s, "%d=%u\n", rdtgrp->plr->d->id, size); + goto out; + } + for_each_alloc_enabled_rdt_resource(r) { seq_printf(s, "%*s:", max_name_width, r->name); list_for_each_entry(d, &r->domains, list) { @@ -1164,6 +1182,7 @@ static int rdtgroup_size_show(struct kernfs_open_file *of, seq_putc(s, '\n'); } +out: rdtgroup_kn_unlock(of->kn); return 0;