IBM Support

IZ60683: LSCONF TO GET THE SERIAL NUMBER FROM AIX IS INEFFICIENT

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Can you take a look at this recommendation from AIX Kernel team:
    
    I am thinking that this is starting to look to be a very
    expensive call on the frame the way prtconf (lsconf) works, if
    all that is needed out of it is the Machine's Serial Number.
    
    Since we store the Machine Serial number on the LPAR itself
    (in the AIX native database called the ODM) that maybe the end
    game solution might best be served by instead of using lsconf
    (prtconf) and grepping for the Machine Serial number that we may
    have all the data locally in the AIX that your application is
    looking for without going all the way down to the hardware for
    it.
    
    SO: I am tossing out this idea for TADDM developer:
    Since AIX already keeps the parts Serial number on the
    filesystem locally once it has discovered it for it's own use -
    and there is a command to retrieve ut- the command to
    retrieve it would be:
    
    # odmget CuAt | grep -p systemid
    (this command avoids going all the way down to the hardware all
    over again, - which looking more and more like something we
    shouldn't be doing often in the interest of being efficient).
    Which will return the following text paragraph:
    
    CuAt:
            name = "sys0"
            attribute = "systemid"
            value = "IBM,030694FCG"
            type = "R"
            generic = "D"
            rep = "s"
            nls_index = 62
    
    From there, further use of grep and either awk or can narrow it
    down to just the digits of the serial
    number you are looking for (as the above "IBM,030694FCG" is a
    bit more long version than you get from the
    lsconf command, but that can be fixed with a pipe through awk -
    let me elaborate..).
    example: odmget CuAt | grep -p systemid | awk '$1 == "value" {
    print
    substr($3,8,7) }'
    (for the awk part this translates to "if the $1 (first value) on
    the
    line is "value" then print the $3 (third value) starting at
    position 8
    and print 7 of them.
    returns: 0694FCG
    
    # lsconf | grep -e "Machine Serial"
    Machine Serial Number: 0694FCG
    
    I did a preliminary test of performance gains using the AIX
    "time"
    command, and this is on an idle LPAR:
    compare the time spent in real,user, and sys spaces for the 2
    commands:
    # time lsconf | grep -e "Machine Serial"
    Machine Serial Number: 0694FCG
    
    real    0m6.10s
    user    0m0.00s
    sys     0m0.00s
    (total 6.1 secs)
    
    versus:
    # time odmget CuAt | grep -p systemid | awk '$1 == "value" {
    print
    substr($3,8,7) }'
    0694FCG
    
    real    0m0.15s
    user    0m0.01s
    sys     0m0.01s
    (total 0.16s)
    
    Switching TADDM to use this command may gain up to 60 times
    faster
    response using 1/60th of the local CPU time.
    Of course the words "Machine Serial Number: can be added back in
    to the
    output, but that can be done either locally,
    or back on the TADDM server before storing the value into it's
    database.
    
    Maybe a consideration, since even if we found a way to speed up
    the ops
    down in the bottom end where lsconf
    goes to get the data, I don't think it would ever be quite as
    fast as
    this.
    

Local fix

Problem summary

  • LSCONF TO GET THE SERIAL NUMBER FROM AIX IS INEFFICIENT
    

Problem conclusion

  • The fix for this APAR is contained in the following
    maintenance packages:
    | Fix Pack | 7.1.2.0-TIV-ITADDM-FP0005
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ60683

  • Reported component name

    APP DEPENDENCY

  • Reported component ID

    5724N5500

  • Reported release

    710

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-09-16

  • Closed date

    2009-10-31

  • Last modified date

    2009-10-31

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    APP DEPENDENCY

  • Fixed component ID

    5724N5500

Applicable component levels

  • R712 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSPLFC","label":"Tivoli Application Dependency Discovery Manager"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
31 October 2009