summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/mp_machdep.c7
-rw-r--r--sys/amd64/amd64/mptable.c7
-rw-r--r--sys/amd64/include/mptable.h7
-rw-r--r--sys/i386/i386/mp_machdep.c7
-rw-r--r--sys/i386/i386/mptable.c7
-rw-r--r--sys/i386/include/mptable.h7
6 files changed, 30 insertions, 12 deletions
diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c
index 4cc8bf5..d630bd5 100644
--- a/sys/amd64/amd64/mp_machdep.c
+++ b/sys/amd64/amd64/mp_machdep.c
@@ -999,9 +999,12 @@ mptable_pass2(void)
while (count--) {
switch (type = *(u_char *) position) {
case 0:
- if (processor_entry(position, cpu))
+ if (processor_entry(position, cpu)) {
+ if (logical_cpus != 0 &&
+ cpu % logical_cpus != 0)
+ logical_cpus_mask |= (1 << cpu);
++cpu;
-
+ }
if (need_hyperthreading_fixup) {
/*
* Create fake mptable processor entries
diff --git a/sys/amd64/amd64/mptable.c b/sys/amd64/amd64/mptable.c
index 4cc8bf5..d630bd5 100644
--- a/sys/amd64/amd64/mptable.c
+++ b/sys/amd64/amd64/mptable.c
@@ -999,9 +999,12 @@ mptable_pass2(void)
while (count--) {
switch (type = *(u_char *) position) {
case 0:
- if (processor_entry(position, cpu))
+ if (processor_entry(position, cpu)) {
+ if (logical_cpus != 0 &&
+ cpu % logical_cpus != 0)
+ logical_cpus_mask |= (1 << cpu);
++cpu;
-
+ }
if (need_hyperthreading_fixup) {
/*
* Create fake mptable processor entries
diff --git a/sys/amd64/include/mptable.h b/sys/amd64/include/mptable.h
index 4cc8bf5..d630bd5 100644
--- a/sys/amd64/include/mptable.h
+++ b/sys/amd64/include/mptable.h
@@ -999,9 +999,12 @@ mptable_pass2(void)
while (count--) {
switch (type = *(u_char *) position) {
case 0:
- if (processor_entry(position, cpu))
+ if (processor_entry(position, cpu)) {
+ if (logical_cpus != 0 &&
+ cpu % logical_cpus != 0)
+ logical_cpus_mask |= (1 << cpu);
++cpu;
-
+ }
if (need_hyperthreading_fixup) {
/*
* Create fake mptable processor entries
diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c
index 4cc8bf5..d630bd5 100644
--- a/sys/i386/i386/mp_machdep.c
+++ b/sys/i386/i386/mp_machdep.c
@@ -999,9 +999,12 @@ mptable_pass2(void)
while (count--) {
switch (type = *(u_char *) position) {
case 0:
- if (processor_entry(position, cpu))
+ if (processor_entry(position, cpu)) {
+ if (logical_cpus != 0 &&
+ cpu % logical_cpus != 0)
+ logical_cpus_mask |= (1 << cpu);
++cpu;
-
+ }
if (need_hyperthreading_fixup) {
/*
* Create fake mptable processor entries
diff --git a/sys/i386/i386/mptable.c b/sys/i386/i386/mptable.c
index 4cc8bf5..d630bd5 100644
--- a/sys/i386/i386/mptable.c
+++ b/sys/i386/i386/mptable.c
@@ -999,9 +999,12 @@ mptable_pass2(void)
while (count--) {
switch (type = *(u_char *) position) {
case 0:
- if (processor_entry(position, cpu))
+ if (processor_entry(position, cpu)) {
+ if (logical_cpus != 0 &&
+ cpu % logical_cpus != 0)
+ logical_cpus_mask |= (1 << cpu);
++cpu;
-
+ }
if (need_hyperthreading_fixup) {
/*
* Create fake mptable processor entries
diff --git a/sys/i386/include/mptable.h b/sys/i386/include/mptable.h
index 4cc8bf5..d630bd5 100644
--- a/sys/i386/include/mptable.h
+++ b/sys/i386/include/mptable.h
@@ -999,9 +999,12 @@ mptable_pass2(void)
while (count--) {
switch (type = *(u_char *) position) {
case 0:
- if (processor_entry(position, cpu))
+ if (processor_entry(position, cpu)) {
+ if (logical_cpus != 0 &&
+ cpu % logical_cpus != 0)
+ logical_cpus_mask |= (1 << cpu);
++cpu;
-
+ }
if (need_hyperthreading_fixup) {
/*
* Create fake mptable processor entries
OpenPOWER on IntegriCloud