9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: [9fans] missing machs unearthed
Date: Sun,  4 Apr 2010 22:45:22 -0400	[thread overview]
Message-ID: <221bb4c0dbe48162e01b47aae85ef33e@brasstown.quanstro.net> (raw)

i've had a core i7 machine for some time with 4c/8t.
unfortunately, the mp table has only 4 processor entries.
evidently this is also the case on core i5/xeon 3xxxx machines
with >= 4t as well.

in my case, i was given a lucky break by bios which gave
the processors apic ids 0, 2, 4, 6 and the ioapic got apic
id 8.  since apic ids are unique within a system, it wasn't
too hard to guess that i might be missing 1, 3, 5, 7.
clearly guessing wrong will result in no boot for you.

(unluckily, the xeon 3xxxx that's come for a visit gives
its ioapic id 1.  :-(.)

a quick (but gruesome) hack later, and i was able to
generate fake mp entries for the missing processors.
and:

chula# cat /dev/sysstat
          0        1659       77046         458         444           0           0         391          94           0
          1        2773       70167         686         698           0           0           0          87           0
          2        2116       69208         616         433           0           0           0          86           0
          3        2129       70004         804         431           0           0           0          85           0
          4        2357       72195         567         462           0           0           0          90           0
          5        1291      125929         602         429           0           0           0          85           0
          6        2223       70054         526         478           0           0           0          85           0
          7        2153       70028         568         405           0           0           0          84           0

i can then use cpuid to validate this.  cpuid -t wires itself
to each processor to get the apic id for that processor.

chula# aux/cpuid -t
thread	00000001 00000002 00000100 00000000
core	00000004 00000008 00000201 00000000
mach0	apic 00000000
mach1	apic 00000001
mach2	apic 00000002
mach3	apic 00000003
mach4	apic 00000004
mach5	apic 00000005
mach6	apic 00000006
mach7	apic 00000007

it's quite unfortunate that this info isn't available outside
the processor.

this is what the system thinks;
the fields are type/apicno/flags/lintr0/lintr1/machno

chula# cat /dev/mpapic
proc                0 be        65536        65536           0
proc                1  e        65536        65536           1
proc                2  e        65536        65536           2
proc                3  e        65536        65536           3
proc                4  e        65536        65536           4
proc                5  e        65536        65536           5
proc                6  e        65536        65536           6
proc                7  e        65536        65536           7
ioapic              8  e            0            0           0

- erik



             reply	other threads:[~2010-04-05  2:45 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-05  2:45 erik quanstrom [this message]
2010-04-05  9:20 ` Richard Miller
2010-04-05 10:49   ` Francisco J Ballesteros
2010-04-05 13:51   ` erik quanstrom
2010-04-05 14:26     ` Richard Miller
2010-04-05 14:32       ` erik quanstrom
2010-04-05 18:34         ` Venkatesh Srinivas
2010-04-05 19:00           ` erik quanstrom
2010-04-05 15:18       ` Brian L. Stuart
2010-04-05 15:18   ` ron minnich
2010-04-05 15:21     ` Francisco J Ballesteros
2010-04-05 15:31     ` Devon H. O'Dell
2010-04-05 15:38       ` Francisco J Ballesteros
2010-04-05 15:56         ` erik quanstrom
2010-04-05 16:05           ` Francisco J Ballesteros
2010-04-05 16:12             ` erik quanstrom
2010-04-05 16:24               ` Francisco J Ballesteros
     [not found] <mailman.1.1270468801.19649.9fans@9fans.net>
2010-04-05 14:47 ` Artem Pylypchuk

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=221bb4c0dbe48162e01b47aae85ef33e@brasstown.quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@9fans.net \
    /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 NNTP newsgroup(s).