- Community Home
- >
- Servers and Operating Systems
- >
- Legacy
- >
- HPE 9000 and HPE e3000 Servers
- >
- Re: Possible to obtain PCI_BUS_TARGET_ID prior to ...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-15-2011 11:53 AM
тАО03-15-2011 11:53 AM
Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
According to the HPMC, they apparently fail to assert DEVSEL# when their address is posted to the PCI bus. Since it's 11.11, this of course results in an HPMC.
In the trace, I'm able to see where it identifies the "Requestor ID" and the "PCI_BUS_TARGET_ID," but I'm wondering if it's possible to find out those PCI target addresses on a system that's up and running, or even one that's been TOCed.
The one on the timed-out card looks a bit odd (0xec000174) since it's not aligned, so I'm wondering if that may have something to do with the timeouts.
Suppose the PCI bus is sending 0xec000174 but the card is expecting, say, a doubleword aligned address of 0xec174000, for example, and so is not responding to that address.
This unaligned target ID seems to be a common thread through a few different tombstone files, so I'd like a way to check some known-good cards to help figure out whether or not an unaligned target address is normal.
- Tags:
- HPMC
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-22-2011 08:57 AM
тАО03-22-2011 08:57 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
That could be related to what you are asking about. The fix is to update the "mpt u320" software (located at software.hp.com).
-Bob
Was this helpful? Like this post by giving me a thumbs up below!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО04-26-2011 10:24 AM
тАО04-26-2011 10:24 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
The PCI Local Bus Specification 2.1 allows a card to ignore PCI bus address assertions that are beyond the range of its registers.
When a card's registers are mapped to host memory, the minimum is one 4k page. If a memory access is made to any part of this page other than the range of addresses which the card accepts, the card ignores it as it is permitted to and does not assert DEVSEL#, and then the bus times out.
Now we're trying to figure out where the bad access is coming from.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-18-2011 07:19 AM
тАО05-18-2011 07:19 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
The string I see is similar to as follows:
LBA received no DEVSEL# when mastering the I/O bus.
This is causing a timeout as you describe and an HPMC occurs. Replacing the associated card did not resolve this for us.
-Bob
Was this helpful? Like this post by giving me a thumbs up below!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-18-2011 08:59 AM
тАО05-18-2011 08:59 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
You can see if there's anything iomapped on your system by examining the kernel's iomappers linked list.
With Q4, I think the syntax is:
q4> load struct iomapper from iomappers next next max 50
q4> print
This will show you all the IO mappers associated with active processes on the system. The p_vaddr address is the virtual address of the map in quadrant 4. The "iomapper" address contains a pointer to the head of the iomappers list.
A tip 'o the hat goes to WTEC S.A. for this information having soaked deep into my brain during our six months worth of work leading to PHKL_41910.
A more comprehensive approach using P4 instead of Q4 is:
p4> Pregions -A
p4> keep p_type==PT_IO
p4> pview -v
For example:
p4> pview -v
Pregion p_type p_space p_vaddr p_count p_reg
0x41280240 IO 0x845e400 0xfffffffffa200000 2560 0x4123f040
0x41280140 IO 0x845e400 0xfffffffffb000000 4096 0x4123f040
0x41280040 IO 0x845e400 0xfffffffffa000000 32 0x4123f040
0x4acd5cc0 IO 0x9e6dc00 0xfb000000 4096 0x4123f200
0x4ac17e80 IO 0x9e6dc00 0xfa200000 2560 0x4123f200
0x4ac5b2c0 IO 0x9e6dc00 0xfa000000 32 0x4123f200
0x41280540 IO 0x9e6dc00 0xfa200000 2560 0x4123f200
0x41280440 IO 0x9e6dc00 0xfb000000 4096 0x4123f200
0x41280340 IO 0x9e6dc00 0xfa000000 32 0x4123f200
p4>
This list shows memory maps for this B2600 workstation's video card. The first three are 64-bit maps of one region (referenced by three 64-bit pseudo-regions), and the next six are 32-bit maps of another region (p_reg) of three different sizes:
p4> Region 0x4123f200
Loaded 1 reg_t entries in 'DefaultView'
p4> pview
Region r_type refcnt r_pgsz r_nvalid r_fstore r_bstore r_flags
0x4123f200 RT_SHARED 6 0 0 0 0 RF_ALLOC
p4>
Note the reference count of 6, as we'd expect.
In the above example, we have three IO maps in 32-bit land, one at 0xfa200000, another at 0xfa000000, and a third at 0xfb000000. The 32-bit addresses above 0xf0000000 in quadrant 4 are reserved for IO maps.
The space ID is the same because all 32-bit processes share a global space for quadrant 4. In addition, all IO map shared memory segments have a common protection key which is determined at boot.
So, a process which is allowed to access virtual address 0x9e6dc00.0xfa000000, for example, can cause PCI bus activity, and if that activity is not acknowledged by the card, you'll get the bus timeout and HPMC.
Take a close look at the raw tombstone file once you have the mapped address - searching down to an ERR_TIMEOUT in the ts99 file will show you the target PCI bus address which timed out, such as 0x8c001704.
This address will depend on which bus and slot the card is in. It is not a system memory address, but rather a 32-bit value used by the PCI bus to select a given card by asserting that value on the PCI bus address pins at the right time.
This PCI bus address will correspond to a memory-map address. Let's say we found out that it's 0xfa000000, based on research about how the card functions and how the driver maps it.
So if you search the ts99 file for 0xfa001704, you may very well find it in one or more of the registers on one or more of the CPUs listed in the tombstone. Knowing what thread was running on that CPU might lead you to the culprit which made the invalid access to the card.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-18-2011 10:03 AM
тАО05-18-2011 10:03 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
Was this helpful? Like this post by giving me a thumbs up below!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-18-2011 10:18 AM
тАО05-18-2011 10:18 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
I found this a few months ago, which may be helpful:
www.dectrader.com/docs/set3/emr_na-c01037168-2.pdf
But your best bet will probably be to open a software support case for some debugging guidance. Unless it's a non-HP card/driver in which case they'll probably tell you to talk to the vendor, who may be able to find someone who knows Q4.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-25-2011 04:25 AM
тАО05-25-2011 04:25 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-25-2011 05:11 AM
тАО05-25-2011 05:11 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
I did find an issue documented stating that the U320 cards should be forced to run at U160 when using ds2120 storage systems (which we are). This has been done and we are now waiting to see if things stabilize.
Was this helpful? Like this post by giving me a thumbs up below!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-25-2011 07:38 AM
тАО05-25-2011 07:38 AM
Re: Possible to obtain PCI_BUS_TARGET_ID prior to HPMC?
And a rather arcane set of precipitating conditions coupled with certain not-universally-valid assumptions in the LIBCL stack unwinding library appears to be at the root of our own HPMC problem.