Sun Microsystems, Inc.  Sun System Handbook - ISO 3.4 June 2011 Internal/Partner Edition
   Home | Current Systems | Former STK Products | EOL Systems | Components | General Info | Search | Feedback

Asset ID: 1-72-1009696.1
Update Date:2010-07-06
Keywords:

Solution Type  Problem Resolution Sure

Solution  1009696.1 :   "kstat -p" and "prtdiag -v" may give seemingly different PCI bus speeds for Dual Fast Ethernet and Dual SCSI PCI Adapters  


Related Items
  • Sun Fire E6900 Server
  •  
  • Sun Fire E25K Server
  •  
  • Sun Fire E20K Server
  •  
  • Sun Fire 6800 Server
  •  
  • Sun Fire E4900 Server
  •  
  • Sun Fire 12K Server
  •  
  • Sun Netra 1280 Server
  •  
  • Sun Fire 4800 Server
  •  
  • Sun Fire V1280 Server
  •  
  • Sun Fire E2900 Server
  •  
  • Sun Fire 15K Server
  •  
  • Sun Netra 1290 Server
  •  
  • Sun Fire 4810 Server
  •  
Related Categories
  • GCS>Sun Microsystems>Servers>Midrange V and Netra Servers
  •  
  • GCS>Sun Microsystems>Servers>Entry-Level Servers
  •  
  • GCS>Sun Microsystems>Servers>High-End Servers
  •  
  • GCS>Sun Microsystems>Servers>Midrange Servers
  •  

PreviouslyPublishedAs
213337


Symptoms
On the Mid-Range SPARC(R) servers and High-End SPARC(R) SCSI PCI Adapters can be observed when using "prtdiag -v" and "kstat -p | grep pci_bus_speed".
- first example:
$ prtdiag -v
...
========================= IO Cards ========================= 
                               Bus  Max
IO   Port Bus       Freq Bus  Dev,
FRU Name    Type  ID  Side Slot MHz  Freq Func State Name                              Model
----------  ---- ---- ---- ---- ---- ---- ---- ----- --------------------------------  ----------------------
...
/N0/IB6/P0  PCI   24   A    3    66   66  1,0  ok    pci-pci8086,b154.0/network (netw+ pci-bridge
/N0/IB6/P0  PCI   24   A    3    66   66  0,0  ok    network-pci100b,35.30             SUNW,pci-ce
/N0/IB6/P0  PCI   24   A    3    66   66  1,0  ok    network-pci100b,35.30             SUNW,pci-ce
/N0/IB6/P0  PCI   24   A    3    66   66  2,0  ok    scsi-pci1000,b.7/disk (block)
/N0/IB6/P0  PCI   24   A    3    66   66  2,1  ok    scsi-pci1000,b.7/disk (block)
...
/N0/IB7/P0  PCI   26   B    0    33   33  1,0  ok    pci-pci8086,b154.0/network (netw+ pci-bridge
/N0/IB7/P0  PCI   26   B    0    33   33  0,0  ok    network-pci100b,35.30             SUNW,pci-ce
/N0/IB7/P0  PCI   26   B    0    33   33  1,0  ok    network-pci100b,35.30             SUNW,pci-ce
/N0/IB7/P0  PCI   26   B    0    33   33  2,0  ok    scsi-pci1000,b.7/disk (block)
/N0/IB7/P0  PCI   26   B    0    33   33  2,1  ok    scsi-pci1000,b.7/disk (block)
/N0/IB7/P0  PCI   26   A    3    66   66  1,0  ok    network-pci100b,35.30             SUNW,pci-ce
/N0/IB7/P1  PCI   27   A    7    66   66  1,0  ok    network-pci100b,35.30             SUNW,pci-ce

-> 4x66, 2x33

$ grep pci_bus_speed kstat-p.out
ce:0:ce0:pci_bus_speed  33
ce:1:ce1:pci_bus_speed  33
ce:2:ce2:pci_bus_speed  66
ce:3:ce3:pci_bus_speed  66
ce:4:ce4:pci_bus_speed  33
ce:5:ce5:pci_bus_speed  33

-> 2x66, 4x33

$ grep ce path*
"/ssm@0,0/pci@1a,700000/pci@1/network@0" 0 "ce" = IB7 slot0, /N0/IB7/P0, prtdiag 33, kstat 33
"/ssm@0,0/pci@1a,700000/pci@1/network@1" 1 "ce" = IB7 slot0, /N0/IB7/P0, prtdiag 33, kstat 33
"/ssm@0,0/pci@1a,600000/network@1" 2 "ce"       = IB7 slot3, /N0/IB7/P0, prtdiag 66, kstat 66
"/ssm@0,0/pci@1b,600000/network@1" 3 "ce"       = IB7 slot7, /N0/IB7/P1, prtdiag 66, kstat 66
"/ssm@0,0/pci@18,600000/pci@1/network@0" 4 "ce" = IB6 slot3, /N0/IB6/P0, prtdiag 66, kstat 33 <-
"/ssm@0,0/pci@18,600000/pci@1/network@1" 5 "ce" = IB6 slot3, /N0/IB6/P0, prtdiag 66, kstat 33 <-

-> the card in IB6 slot3 shows 33 MHz in "kstat" and 66 MHz in "prtdiag" output

- a different example:

$ prtdiag -v
========================= IO Cards =========================
                               Bus  Max
IO   Port Bus       Freq Bus  Dev,
FRU Name    Type  ID  Side Slot MHz  Freq Func State Name                              Model
----------  ---- ---- ---- ---- ---- ---- ---- ----- --------------------------------  ----------------------
/N0/IB6/P0  PCI   24   B    0    33   33  1,0  ok    pci-pci8086,b154.0/network (netw+ pci-bridge
/N0/IB6/P0  PCI   24   B    0    33   33  0,0  ok    network-pci108e,abba.20           SUNW,pci-ce
/N0/IB6/P0  PCI   24   B    0    33   33  1,0  ok    network-pci108e,abba.20           SUNW,pci-ce
/N0/IB6/P0  PCI   24   B    0    33   33  2,0  ok    scsi-pci1000,b.1000.1000.7/disk +
/N0/IB6/P0  PCI   24   B    0    33   33  2,1  ok    scsi-pci1000,b.1000.1000.7/disk +
...
/N0/IB6/P0  PCI   24   A    3    66   66  1,0  ok    network-pci108e,abba.11           SUNW,pci-ce
...
/N0/IB8/P0  PCI   28   B    0    33   33  1,0  ok    network-pci100b,35.30             SUNW,pci-ce
...
/N0/IB8/P0  PCI   28   A    3    66   66  1,0  ok    network-pci108e,abba.11           SUNW,pci-ce             
$ grep pci_bus_speed kstat-p.out
ce:0:ce0:pci_bus_speed  66 -> IB6 slot0
ce:1:ce1:pci_bus_speed  66 -> IB6 slot0
ce:2:ce2:pci_bus_speed  66 -> IB6 slot3
ce:3:ce3:pci_bus_speed  66 -> IB8 slot3
ce:4:ce4:pci_bus_speed  33 -> IB8 slot0

- the card in IB6 slot0 is showing the opposite behaviour, 66 MHz in "kstat" and 33 MHz in "prtdiag" output



Resolution
The kstat information is correct. While the slot's PCI bus speed is 66MHz, on the secondary side of bridge (pci-pci8086,b154.0) the "ce" chip is actually running at 33MHz due to the bus speed limitation of the SCSI chips which sit on the same bus.

The "ce" driver reads the bus interface config registers to get the pci_bus_speed information. The bit is a read only bit that was set by the hardware.

In the second example, the Dual Fast Ethernet and Dual SCSI PCI Adapter is the very early version with a different ASIC chip which has a hardware bug.

  • Old version: network-pci108e,abba.20
  • New version: network-pci100b,35.30


Product
Sun Fire V1280 Server
Netra 1280 Server
Sun Netra 1290 Server
Sun Fire E6900 Server
Sun Fire E4900 Server
Sun Fire E2900 Server
Sun Fire 6800 Server
Sun Fire 4810 Server
Sun Fire 4800 Server
Sun Fire 12K Server
Sun Fire 15K Server
Sun Fire E20K Server
Sun Fire E25K Server


Internal Comments
The following is strictly for the use of Sun employees:

CR 6515526 "kstat -p" may give wrong PCI bus speeds for Cauldron cards on Serengeti, LW8 and Starcat


prtdiag, kstat, pci_bus_speed, amazon, serengeti, starcat, lw8
Previously Published As
88356

Change History
Date: 2009-11-20
User Name: 117021 Volkmar Grote
Action: Reviewed for Content Team
Comment: Cosmetic changes, added LW8 Netras


Date: 2007-02-02
User Name: 71396
Action: Approved
Comment: Performed final review of article.

No changes required.


Attachments
This solution has no attachment
  Copyright © 2011 Sun Microsystems, Inc.  All rights reserved.
 Feedback