public inbox for cygwin-cvs@sourceware.org
help / color / mirror / Atom feed
From: Ken Brown <kbrown@sourceware.org>
To: cygwin-cvs@sourceware.org
Subject: [newlib-cygwin] fhandler_proc.cc(format_proc_cpuinfo): add Linux 5.18 cpuinfo flags
Date: Wed, 25 May 2022 17:30:01 +0000 (GMT)	[thread overview]
Message-ID: <20220525173001.243123857BBB@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=9af21ada23389d9e6bcc0082fcc0e01545d8fd15

commit 9af21ada23389d9e6bcc0082fcc0e01545d8fd15
Author: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca>
Date:   Wed May 25 06:30:45 2022 -0600

    fhandler_proc.cc(format_proc_cpuinfo): add Linux 5.18 cpuinfo flags
    
    0x80000008:0 EBX:31 brs         AMD Branch Sampling available
    0x80000022:0 EAX:0  perfmon_v2  AMD ExtPerfMonAndDbg Performance Monitoring Version 2
    0x00000021:0 EBX|EDX|ECX=="IntelTDX    " tdx_guest Intel Trust Domain Extensions- Guest Support

Diff:
---
 winsup/cygwin/fhandler_proc.cc | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc
index 9ba241981..af553644e 100644
--- a/winsup/cygwin/fhandler_proc.cc
+++ b/winsup/cygwin/fhandler_proc.cc
@@ -1362,14 +1362,21 @@ format_proc_cpuinfo (void *, char *&destbuf)
       if (maxe >= 0x80000008)
 	{
 /*	  cpuid (&unused, &features1, &unused, &unused, 0x80000008, 0); */
-/*	  from above */
+/*	  from above ^ */
 	  ftcprint (features1,  6, "mba");	/* memory bandwidth alloc */
 	}
+      /* cpuid 0x80000022 ebx AMD ExtPerfMonAndDbg */
+      if (maxe >= 0x80000022)
+	{
+	  cpuid (&features2, &unused, &unused, &unused, 0x80000022);
+
+	  ftcprint (features2,  0, "perfmon_v2"); /* Performance Monitoring Version 2 */
+	}
       /* cpuid 0x80000008 ebx */
       if (maxe >= 0x80000008)
         {
 /*	  cpuid (&unused, &features1, &unused, &unused, 0x80000008, 0); */
-/*	  from above */
+/*	  from above ^ */
 /*	  ftcprint (features1,  0, "clzero");	*//* clzero instruction */
 /*	  ftcprint (features1,  1, "irperf");   *//* instr retired count */
 /*	  ftcprint (features1,  2, "xsaveerptr");*//* save/rest FP err ptrs */
@@ -1388,6 +1395,16 @@ format_proc_cpuinfo (void *, char *&destbuf)
 /*	  ftcprint (features1, 26, "ssb_no");	*//* ssb fixed in hardware */
         }
 
+      /* cpuid 0x00000021 ebx|edx|ecx == "IntelTDX    " */
+      if (is_intel && maxf >= 0x00000021)
+	{
+	  uint32_t tdx[3];
+
+	  cpuid (&unused, &tdx[0], &tdx[2],  &tdx[1], 0x00000021, 0);
+	  if (!memcmp ("IntelTDX    ", tdx, sizeof (tdx)))
+	    ftuprint ("tdx_guest"); /* Intel Trust Domain Extensions Guest Support */
+	}
+
       /* cpuid 0x00000007 ebx */
       if (maxf >= 0x00000007)
 	{
@@ -1485,6 +1502,7 @@ format_proc_cpuinfo (void *, char *&destbuf)
 	  ftcprint (features1, 25, "virt_ssbd");    /* vir spec store byp dis */
 /*	  ftcprint (features1, 26, "ssb_no"); */    /* ssb fixed in hardware */
 	  ftcprint (features1, 27, "cppc");	    /* collab proc perf ctl */
+	  ftcprint (features1, 31, "brs");	    /* branch sampling */
         }
 
       /* thermal & power cpuid 0x00000006 eax */


                 reply	other threads:[~2022-05-25 17:30 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20220525173001.243123857BBB@sourceware.org \
    --to=kbrown@sourceware.org \
    --cc=cygwin-cvs@sourceware.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).