assume Xeon on redhat AS 2.1 is HT enabled
This commit is contained in:
parent
2d3a408648
commit
a79bb600b9
|
@ -1078,7 +1078,7 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||||
sigar_cpu_info_list_t *cpu_infos)
|
sigar_cpu_info_list_t *cpu_infos)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int id;
|
int id, fake_id = -1;
|
||||||
int cpu_id[36], cpu_ix=0;
|
int cpu_id[36], cpu_ix=0;
|
||||||
/* in the event that a box has > 36 cpus */
|
/* in the event that a box has > 36 cpus */
|
||||||
int cpu_id_max = sizeof(cpu_id)/sizeof(int);
|
int cpu_id_max = sizeof(cpu_id)/sizeof(int);
|
||||||
|
@ -1093,6 +1093,8 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||||
memset(&cpu_id[0], -1, sizeof(cpu_id));
|
memset(&cpu_id[0], -1, sizeof(cpu_id));
|
||||||
|
|
||||||
while (get_cpu_info(sigar, &cpu_infos->data[cpu_infos->number], fp, &id)) {
|
while (get_cpu_info(sigar, &cpu_infos->data[cpu_infos->number], fp, &id)) {
|
||||||
|
fake_id++;
|
||||||
|
|
||||||
if (id >= 0) {
|
if (id >= 0) {
|
||||||
int i, fold=0;
|
int i, fold=0;
|
||||||
for (i=0; (i<cpu_ix) && (i<cpu_id_max); i++) {
|
for (i=0; (i<cpu_ix) && (i<cpu_id_max); i++) {
|
||||||
|
@ -1115,6 +1117,17 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (strEQ(cpu_infos->data[cpu_infos->number].model, "Xeon")) {
|
||||||
|
/* Redhat AS 2.1 /proc/cpuinfo does not have any of the
|
||||||
|
* attributes we use to detect hyperthreading, in this case
|
||||||
|
* if model Xeon, assume HT enabled. FUCK IT.
|
||||||
|
*/
|
||||||
|
if (fake_id % 2) {
|
||||||
|
sigar->ht_enabled = 1;
|
||||||
|
sigar->lcpu = 2; /* XXX assume 2 for now */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
++cpu_infos->number;
|
++cpu_infos->number;
|
||||||
SIGAR_CPU_INFO_LIST_GROW(cpu_infos);
|
SIGAR_CPU_INFO_LIST_GROW(cpu_infos);
|
||||||
|
|
Loading…
Reference in New Issue