[BACK]Return to procfs_machdep.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / x86 / x86

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/arch/x86/x86/procfs_machdep.c between version 1.16 and 1.17

version 1.16, 2017/08/28 07:03:47 version 1.17, 2017/09/28 10:59:38
Line 106  static const char * const x86_features[]
Line 106  static const char * const x86_features[]
         "fma4", "tce", NULL, "nodeid_msr",          "fma4", "tce", NULL, "nodeid_msr",
         NULL, "tbm", "topoext", "perfctr_core",          NULL, "tbm", "topoext", "perfctr_core",
         "perfctr_nb", NULL, "bpext", "ptsc",          "perfctr_nb", NULL, "bpext", "ptsc",
         "perfctr_l2", "mwaitx", NULL, NULL},          "perfctr_llc", "mwaitx", NULL, NULL},
   
         { /* (7) Linux mapping */          { /* (7) Linux mapping */
         NULL, NULL, "cpb", "ebp", NULL, "pln", "pts", "dtherm",          NULL, NULL, "cpb", "ebp", NULL, "pln", "pts", "dtherm",
         "hw_pstate", "proc_feedback", NULL, NULL,          "hw_pstate", "proc_feedback", "sme", NULL,
         NULL, NULL, NULL, "intel_pt",          NULL, NULL, NULL, "intel_pt",
         NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,          NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
         NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},          NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
Line 131  static const char * const x86_features[]
Line 131  static const char * const x86_features[]
         "clwb", NULL, "avx512pf", "avx512er",          "clwb", NULL, "avx512pf", "avx512er",
         "avx512cd", "sha_ni", "avx512bw", "avx512vl"},          "avx512cd", "sha_ni", "avx512bw", "avx512vl"},
   
         { /* (10) 0x0000000d eax */          { /* (10) 0x0000000d:1 eax */
         "xsaveopt", "xsavec", "xgetbv1", "xsaves", NULL, NULL, NULL, NULL,          "xsaveopt", "xsavec", "xgetbv1", "xsaves", NULL, NULL, NULL, NULL,
         NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,          NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
         NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,          NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
Line 165  static const char * const x86_features[]
Line 165  static const char * const x86_features[]
         { /* (15) 0x8000000a edx */          { /* (15) 0x8000000a edx */
         "npt", "lbrv", "svm_lock", "nrip_save",          "npt", "lbrv", "svm_lock", "nrip_save",
         "tsc_scale", "vmcb_clean", "flushbyasid", "decodeassists",          "tsc_scale", "vmcb_clean", "flushbyasid", "decodeassists",
         NULL, NULL, "pausefilter", NULL, "pfthreshold", "avic", NULL, NULL,          NULL, NULL, "pausefilter", NULL, "pfthreshold", "avic", NULL,
         NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,          "v_vmsave_vmload",
           "vgif", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
         NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},          NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
   
         { /* (16) 0x00000007:0 ecx */          { /* (16) 0x00000007:0 ecx */
Line 248  procfs_getonecpufeatures(struct cpu_info
Line 249  procfs_getonecpufeatures(struct cpu_info
 {  {
         size_t last = *left;          size_t last = *left;
         size_t diff;          size_t diff;
           u_int descs[4];
   
         procfs_getonefeatreg(ci->ci_feat_val[0], x86_features[0], p, left);          procfs_getonefeatreg(ci->ci_feat_val[0], x86_features[0], p, left);
         diff = last - *left;          diff = last - *left;
Line 278  procfs_getonecpufeatures(struct cpu_info
Line 280  procfs_getonecpufeatures(struct cpu_info
             left);              left);
         diff = last - *left;          diff = last - *left;
   
         /* (10) 0x0000000d eax */          if (cpuid_level >= 0x0d) {
         /* (11) 0x0000000f(ecx=0) edx */                  x86_cpuid2(0x0d, 1, descs);
         /* (12) 0x0000000f(ecx=1) edx */                  procfs_getonefeatreg(descs[0], x86_features[10], p + diff,
                       left);
                   diff = last - *left;
           }
   
           if (cpuid_level >= 0x0f) {
                   x86_cpuid2(0x0f, 0, descs);
                   procfs_getonefeatreg(descs[3], x86_features[11], p + diff,
                       left);
                   diff = last - *left;
   
                   x86_cpuid2(0x0f, 1, descs);
                   procfs_getonefeatreg(descs[3], x86_features[12], p + diff,
                       left);
                   diff = last - *left;
           }
   
         /* (13) 0x80000008 ebx */          /* (13) 0x80000008 ebx */
         /* (14) 0x00000006 eax */  
           if (cpuid_level >= 0x06) {
                   x86_cpuid(0x06, descs);
                   procfs_getonefeatreg(descs[0], x86_features[14], p + diff,
                       left);
                   diff = last - *left;
           }
   
         /* (15) 0x8000000a edx */          /* (15) 0x8000000a edx */
   
         procfs_getonefeatreg(ci->ci_feat_val[6], x86_features[16], p + diff,          procfs_getonefeatreg(ci->ci_feat_val[6], x86_features[16], p + diff,

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

CVSweb <webmaster@jp.NetBSD.org>