> Some help is needed with debugging of a hang.
> A system hits BINIT once in a while and the processors are all
> spinning on the address 0x00100002C00 and if the HT is off the address
> becomes 0x0020000A80. This is a physical address captured on the bus
> by analyser. How can this address be decoded to find out what are the
> processors are spinning on?

Natalie,

The Linux kernel is typically loaded at physical address 0x400000 (64MB)
in one continuous block.  If that address doesn't exist on your platform
then elilo will get some other 64MB aligned address instead.  You may be
able to tell what is the state on you machine by looking at the TLB 'TR'
registers:
$ cat /proc/pal/cpu0/tr_info

Look at the mappings for ITR0 and DTR0 ... they map the kernel. I
say 'may' because some older systems didn't report TR maps
correctly.

Kernel modules loaded after boot will be all over the place.  You
can easily find the virtual addresses in use with:
$ cat /proc/modules
But there isn't a user-mode accessible way to convert them to
physical addresses.  You could write a small loadable driver to
do this.  It is unlikely that all the modules would end up with
exactly the same physical addresses from one boot to the next,
so you'll need to capture this information before the BINIT hits.

You should also check whether the memory addresses in question
were available for Linux to use.
$ cat /proc/iomem

Unless the addresses are marked as "System RAM" they wouldn't
have been used by Linux ... so if you are spinning there, it
is because they are part of firmware (PAL, SAL, EFI).

-Tony
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to