All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tim Chen <tim.c.chen@linux.intel.com>
To: Aubrey Li <aubrey.li@intel.com>,
	tglx@linutronix.de, mingo@redhat.com, peterz@infradead.org,
	hpa@zytor.com
Cc: ak@linux.intel.com, dave.hansen@intel.com, arjan@linux.intel.com,
	linux-kernel@vger.kernel.org,
	Aubrey Li <aubrey.li@linux.intel.com>
Subject: Re: [PATCH v4 2/2] proc: add AVX-512 usage to /proc/pid/status
Date: Tue, 11 Dec 2018 09:57:03 -0800	[thread overview]
Message-ID: <6d6af89a-4490-ffc3-9c16-90cbec2b1300@linux.intel.com> (raw)
In-Reply-To: <20181211002448.3520-2-aubrey.li@intel.com>



On 12/10/18 4:24 PM, Aubrey Li wrote:
> AVX-512 components usage could cause core turbo frequency drop. So
> it's useful to expose AVX-512 components usage as a heuristic hint
> for the user space job scheduler to cluster the AVX-512 using tasks
> together.
> 
> Example:
> $ cat /proc/pid/status | grep AVX512_hint
> AVX512_hint:   1
> 
> The hint number '0' indicates the task recently didn't use AVX-512
> components thus unlikely has frequency drop issue. And the number '1'
> indicates the task recently used AVX-512 components thus could cause
> core frequency drop. User space tools may want to further check by:
> 
> $ perf stat --pid <pid> -e core_power.lvl2_turbo_license -- sleep 1
> 
>  Performance counter stats for process id '3558':
> 
>      3,251,565,961      core_power.lvl2_turbo_license
> 
>        1.004031387 seconds time elapsed
> 
> Non-zero counter value confirms that the task causes frequency drop.
> 
> Signed-off-by: Aubrey Li <aubrey.li@linux.intel.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Andi Kleen <ak@linux.intel.com>
> Cc: Tim Chen <tim.c.chen@linux.intel.com>
> Cc: Dave Hansen <dave.hansen@intel.com>
> Cc: Arjan van de Ven <arjan@linux.intel.com>
> ---
>  arch/x86/kernel/fpu/xstate.c | 19 +++++++++++++++++++
>  fs/proc/array.c              |  5 +++++
>  2 files changed, 24 insertions(+)
> 
> diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
> index 87a57b7642d3..98baa47c97b0 100644
> --- a/arch/x86/kernel/fpu/xstate.c
> +++ b/arch/x86/kernel/fpu/xstate.c
> @@ -7,6 +7,7 @@
>  #include <linux/cpu.h>
>  #include <linux/mman.h>
>  #include <linux/pkeys.h>
> +#include <linux/seq_file.h>
>  
>  #include <asm/fpu/api.h>
>  #include <asm/fpu/internal.h>
> @@ -1245,3 +1246,21 @@ int copy_user_to_xstate(struct xregs_state *xsave, const void __user *ubuf)
>  
>  	return 0;
>  }
> +
> +/*
> + * Report CPU specific thread state
> + */
> +void arch_task_state(struct seq_file *m, struct task_struct *task)
> +{
> +	/*
> +	 * Check the processor and build option if AVX512 is supported.
> +	 */
> +	if (!cpu_feature_enabled(X86_FEATURE_AVX512F))
> +		return;
> +	/*
> +	 * Report AVX-512 components usage:
> +	 */
> +	seq_put_decimal_ull(m, "AVX512_hint:\t",
> +				task->thread.fpu.avx512_usage ? 1 : 0);

I believe you need some kind of documentation of this new interface
in kernel's Documentation.  So an admin doesn't need to look into the
kernel code to figure out what this /proc/pid/status is supposed to do.

Tim



  reply	other threads:[~2018-12-11 17:57 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-11  0:24 [PATCH v4 1/2] x86/fpu: track AVX-512 usage of tasks Aubrey Li
2018-12-11  0:24 ` [PATCH v4 2/2] proc: add AVX-512 usage to /proc/pid/status Aubrey Li
2018-12-11 17:57   ` Tim Chen [this message]
2018-12-11 17:18 ` [PATCH v4 1/2] x86/fpu: track AVX-512 usage of tasks Dave Hansen
2018-12-11 17:52   ` Tim Chen
2018-12-11 17:53   ` Andi Kleen
2018-12-11 23:46   ` Li, Aubrey
2018-12-12  0:14     ` Arjan van de Ven
2018-12-12  0:59       ` Li, Aubrey
2018-12-12  1:06         ` Dave Hansen
2018-12-11 17:20 ` Dave Hansen
2018-12-12  0:34   ` Li, Aubrey
2018-12-12  0:39     ` Dave Hansen
2018-12-12 16:55 ` David Laight
2018-12-12 18:00   ` Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6d6af89a-4490-ffc3-9c16-90cbec2b1300@linux.intel.com \
    --to=tim.c.chen@linux.intel.com \
    --cc=ak@linux.intel.com \
    --cc=arjan@linux.intel.com \
    --cc=aubrey.li@intel.com \
    --cc=aubrey.li@linux.intel.com \
    --cc=dave.hansen@intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.