OS-6877: extend pcibus enumerator to expose driver instance as property on pcifn/pciexfn nodes

Details

Issue Type:Improvement
Priority:4 - Normal
Status:Resolved
Created at:2018-04-09T23:15:56.357Z
Updated at:2018-06-07T01:39:30.844Z

People

Created by:Rob Johnston [X]
Reported by:Rob Johnston [X]
Assigned to:Rob Johnston [X]

Resolution

Fixed: A fix for this issue is checked into the tree and tested.
(Resolution Date: 2018-04-26T22:31:23.169Z)

Fix Versions

2018-05-10 Rocket Town (Release Date: 2018-05-10)

Related Links

Description

The topo nodes that represent PCI/PCIe functions (pcifn/pciexfn nodes) expose the associated driver via the "driver" property in the "io" property group. It would be nice if it also exposed the driver instance in the same place.

Comments

Comment by Rob Johnston [X]
Created at 2018-04-17T17:59:17.322Z

Testing

Built a platform image with this change and then booted a lab system on it and verified that all of the pcifn/pciexfn nodes now properly created a "instance" property in the "io" property group - see example output below:

# ./fmtopo -P io "*pci*fn=[0-9]"
TIME                 UUID
Apr 17 17:57:40 11095e41-766e-4701-9795-e7e977ce9571

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=1/pciexrc=1/pciexbus=2/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@0,0/pci8086,a195@1c,5/pci1a03,1150@0
    devtype           string    pci
    driver            string    pcieb
    instance          uint32    0x1
    module            fmri      mod:///mod-name=pcieb/mod-id=84

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=1/pciexrc=1/pciexbus=2/pciexdev=0/pciexfn=0/pcibus=3/pcidev=0/pcifn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@0,0/pci8086,a195@1c,5/pci1a03,1150@0/displ
    devtype           string    display
    driver            string    vgatext
    instance          uint32    0x0
    module            fmri      mod:///mod-name=vgatext/mod-id=85

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=2/pciexrc=2/pciexbus=24/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@14,0/pci8086,2030@0/pci8086,37c0@0
    devtype           string    pciex
    driver            string    pcieb
    instance          uint32    0x4
    module            fmri      mod:///mod-name=pcieb/mod-id=84

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=2/pciexrc=2/pciexbus=24/pciexdev=0/pciexfn=0/pciexbus=25/pciexdev=3/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@14,0/pci8086,2030@0/pci8086,37c0@0/pci8086
    devtype           string    pciex
    driver            string    pcieb
    instance          uint32    0x5
    module            fmri      mod:///mod-name=pcieb/mod-id=84

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=2/pciexrc=2/pciexbus=24/pciexdev=0/pciexfn=0/pciexbus=25/pciexdev=3/pciexfn=0/pciexbus=26/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@14,0/pci8086,2030@0/pci8086,37c0@0/pci8086
    driver            string    i40e
    instance          uint32    0x0
    module            fmri      mod:///mod-name=i40e/mod-id=174

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=2/pciexrc=2/pciexbus=24/pciexdev=0/pciexfn=0/pciexbus=25/pciexdev=3/pciexfn=0/pciexbus=26/pciexdev=0/pciexfn=1
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@14,0/pci8086,2030@0/pci8086,37c0@0/pci8086
    driver            string    i40e
    instance          uint32    0x1
    module            fmri      mod:///mod-name=i40e/mod-id=174

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=3/pciexrc=3/pciexbus=28/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@14,0/pci8086,2032@2/pci8086,a01f@0
    driver            string    e1000g
    instance          uint32    0x0
    module            fmri      mod:///mod-name=e1000g/mod-id=169

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=4/pciexrc=4/pciexbus=59/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@33,0/pci8086,2032@2/pci8086,c@0
    driver            string    ixgbe
    instance          uint32    0x0
    module            fmri      mod:///mod-name=ixgbe/mod-id=172

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=4/pciexrc=4/pciexbus=59/pciexdev=0/pciexfn=1
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@33,0/pci8086,2032@2/pci8086,c@0,1
    driver            string    ixgbe
    instance          uint32    0x1
    module            fmri      mod:///mod-name=ixgbe/mod-id=172

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=5/pciexrc=5/pciexbus=94/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@55,0/pci8086,2030@0/pci15d9,808@0
    driver            string    mpt_sas
    instance          uint32    0x1
    module            fmri      mod:///mod-name=mpt_sas/mod-id=175

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=6/pciexrc=6/pciexbus=134/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@7c,0/pci8086,2030@0/pci15d9,808@0
    driver            string    mpt_sas
    instance          uint32    0x2
    module            fmri      mod:///mod-name=mpt_sas/mod-id=175

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=7/pciexrc=7/pciexbus=175/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@a4,0/pci8086,2030@0/pci1425,0@0

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=7/pciexrc=7/pciexbus=175/pciexdev=0/pciexfn=1
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@a4,0/pci8086,2030@0/pci1425,0@0,1

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=7/pciexrc=7/pciexbus=175/pciexdev=0/pciexfn=2
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@a4,0/pci8086,2030@0/pci1425,0@0,2

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=7/pciexrc=7/pciexbus=175/pciexdev=0/pciexfn=3
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@a4,0/pci8086,2030@0/pci1425,0@0,3

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=7/pciexrc=7/pciexbus=175/pciexdev=0/pciexfn=4
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@a4,0/pci8086,2030@0/pci1425,0@0,4
    driver            string    t4nex
    instance          uint32    0x0
    module            fmri      mod:///mod-name=t4nex/mod-id=173

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=7/pciexrc=7/pciexbus=175/pciexdev=0/pciexfn=5
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@a4,0/pci8086,2030@0/pci1425,0@0,5

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=7/pciexrc=7/pciexbus=175/pciexdev=0/pciexfn=6
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@a4,0/pci8086,2030@0/pci1425,0@0,6

hc://:product-id=SSG-2029P-ACR24L:server-id=sky1:chassis-id=S287109X8231992/motherboard=0/hostbridge=8/pciexrc=8/pciexbus=216/pciexdev=0/pciexfn=0
  group: io                             version: 1   stability: Private/Private
    dev               string    /pci@cc,0/pci8086,2030@0/pci15d9,808@0
    driver            string    mpt_sas
    instance          uint32    0x0
    module            fmri      mod:///mod-name=mpt_sas/mod-id=175


Comment by Jira Bot
Created at 2018-04-26T22:14:32.892Z

illumos-joyent commit 4cbfb4e7e093f73a0396f7354b72ffeb3c5ab608 (branch master, by Rob Johnston)

OS-6870 need topo maps for the SMCI,SSG-2029P-ACR24L
OS-6876 authority and system pgroups missing on some nodes
OS-6877 extend pcibus enumerator to expose driver instance as property on pcifn/pciexfn nodes
Reviewed by: Robert Mustacchi <rm@joyent.com>
Approved by: Joshua M. Clulow <josh@sysmgr.org>