Project

General

Profile

Bug #9850

authority and system pgroups missing on some nodes

Added by Rob Johnston about 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Start date:
2018-09-19
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:

Description

rm noticed that a number of topo nodes were missing the "authority" and "system" property groups. Looking closer, this issue corresponded to nodes that were dynamically enumerated by the smbios module.

Nodes that are statically enumerated via XML end up running the generic "hc" enumerator which, in turn, calls an internal routine hc_prop_set(), which creates the "authority" and "system" pgroups.

I think the best path her would be to create an API based on hc_prop_set() so that topo modules can easily create these pgroups on dynamically enumerated nodes. To reduce code duplication, hc_prop_set() would be removed from hc.c and the hc module will instead call the new API.

Note that this fix has already been integrated into illumos-joyent via the commit below:

commit 4cbfb4e7e093f73a0396f7354b72ffeb3c5ab608
Author: Rob Johnston <rob.johnston@joyent.com>
Date:   Sat Apr 7 07:30:35 2018 +0000

    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>

History

#1

Updated by Rob Johnston about 1 year ago

  • Description updated (diff)
#2

Updated by Rob Johnston about 1 year ago

See the joyent bug before for how the fix was originally tested prior to integrating into illumos-joyent:

https://smartos.org/bugview/OS-6876

To sanity test the port of this fix to illumos-gate, I onu'd my OI workstation with this change and dumped the slot and dimm topo nodes, using fmtopo and verified that the "system" and "authority" property groups were present and populated correctly. See output below:

root@openindiana:~# fmtopo -V "*dimm=0" 
TIME                 UUID
Sep 21 23:20:39 c8387f72-b2f2-ccde-8ae0-a3a3d83c2121

hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=CMU16GX4M2A2400C16/motherboard=0/slot=0/dimm=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=CMU16GX4M2A2400C16/motherboard=0/slot=0/dimm=0
    FRU               fmri      hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=CMU16GX4M2A2400C16/motherboard=0/slot=0/dimm=0
    label             string    ChannelA-DIMM1
  group: authority                      version: 1   stability: Private/Private
    product-id        string    System-Product-Name
    chassis-id        string    System-Serial-Number
    server-id         string    openindiana
  group: system                         version: 1   stability: Private/Private
    isa               string    i386
    machine           string    i86pc
  group: dimm-properties                version: 1   stability: Private/Private
    size              uint64    0x200000000
    type              string    DDR4
    rank              uint32    0x1
    configured-speed  uint32    0x855
    maximum-speed     uint32    0x855
    configured-voltage double    1.000000
    manufacturer      string    Corsair
    asset-tag         string    9876543210
    location          string    ChannelA-DIMM1

hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=3400-C16-Series/motherboard=0/slot=1/dimm=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=3400-C16-Series/motherboard=0/slot=1/dimm=0
    FRU               fmri      hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=3400-C16-Series/motherboard=0/slot=1/dimm=0
    label             string    ChannelA-DIMM2
  group: authority                      version: 1   stability: Private/Private
    product-id        string    System-Product-Name
    chassis-id        string    System-Serial-Number
    server-id         string    openindiana
  group: system                         version: 1   stability: Private/Private
    isa               string    i386
    machine           string    i86pc
  group: dimm-properties                version: 1   stability: Private/Private
    size              uint64    0x200000000
    type              string    DDR4
    rank              uint32    0x1
    configured-speed  uint32    0x855
    maximum-speed     uint32    0x855
    configured-voltage double    1.000000
    manufacturer      string    Patriot
    asset-tag         string    9876543210
    location          string    ChannelA-DIMM2

hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=CMU16GX4M2A2400C16/motherboard=0/slot=2/dimm=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=CMU16GX4M2A2400C16/motherboard=0/slot=2/dimm=0
    FRU               fmri      hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=CMU16GX4M2A2400C16/motherboard=0/slot=2/dimm=0
    label             string    ChannelB-DIMM1
  group: authority                      version: 1   stability: Private/Private
    product-id        string    System-Product-Name
    chassis-id        string    System-Serial-Number
    server-id         string    openindiana
  group: system                         version: 1   stability: Private/Private
    isa               string    i386
    machine           string    i86pc
  group: dimm-properties                version: 1   stability: Private/Private
    size              uint64    0x200000000
    type              string    DDR4
    rank              uint32    0x1
    configured-speed  uint32    0x855
    maximum-speed     uint32    0x855
    configured-voltage double    1.000000
    manufacturer      string    Corsair
    asset-tag         string    9876543210
    location          string    ChannelB-DIMM1

hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=3400-C16-Series/motherboard=0/slot=3/dimm=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=3400-C16-Series/motherboard=0/slot=3/dimm=0
    FRU               fmri      hc://:product-id=System-Product-Name:server-id=openindiana:chassis-id=System-Serial-Number:serial=00000000:part=3400-C16-Series/motherboard=0/slot=3/dimm=0
    label             string    ChannelB-DIMM2
  group: authority                      version: 1   stability: Private/Private
    product-id        string    System-Product-Name
    chassis-id        string    System-Serial-Number
    server-id         string    openindiana
  group: system                         version: 1   stability: Private/Private
    isa               string    i386
    machine           string    i86pc
  group: dimm-properties                version: 1   stability: Private/Private
    size              uint64    0x200000000
    type              string    DDR4
    rank              uint32    0x1
    configured-speed  uint32    0x855
    maximum-speed     uint32    0x855
    configured-voltage double    1.000000
    manufacturer      string    Patriot
    asset-tag         string    9876543210
    location          string    ChannelB-DIMM2
#3

Updated by Electric Monk about 1 year ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 8522c52a00ba4f8cc5ba2e372ae5b66fd0bb7c26

commit  8522c52a00ba4f8cc5ba2e372ae5b66fd0bb7c26
Author: Rob Johnston <rob.johnston@joyent.com>
Date:   2018-10-06T21:19:45.000Z

    9584 Extend smbios enumerator module to enumerate motherboard
    9850 authority and system pgroups missing on some nodes
    Reviewed by: Robert Mustacchi <rm@joyent.com>
    Reviewed by: Igor Kozhukhov <igor@dilos.org>
    Reviewed by: Garrett D'Amore <garrett@damore.org>
    Approved by: Dan McDonald <danmcd@joyent.com>

Also available in: Atom PDF