I am submitting the following as a fast-track on behalf of myself, with
a timeout set for 06/16/2009.  Patch/micro binding is requested.

-------------

1. Introduction
    1.1. Project/Component Working Name:
         EOF UCB Device Names

    1.2. Name of Document Author/Supplier:
         Author: Jerry Gilliam

    1.3. Date of This Document:
        06/05/2009


    1.4. Name of Major Document Customer(s)/Consumer(s):
         1.4.1. Solaris PAC
         1.4.2. PSARC
         1.4.3. Chris Armes
         1.4.4. Solaris Sustaining

    1.5. Email Aliases:
         1.5.1. Responsible Manager: Michael.Pogue at sun.com
         1.5.2. Responsible Engineer: Jerry.Gilliam at sun.com
         1.5.3. Marketing Manager:
         1.5.4. Interest List: Sriram.Popuri at sun.com, Chris.Horne at sun.com,
                Jan.Setje-Eilers at sun.com


2. Project Summary
    2.1. Project Description:

        EOF of UCB device names

3. Business Summary
    3.1. Problem Area:

        Performance issues related to boot and device naming with ucblinks

    3.2. Market/Requester:
         Escalations by Bloomberg Financial and other customers with 
large installations

    3.2  Details

        A large configuration was simulated with a pseudo driver used to 
configure
        16k disk devices.  Devfsadm required 25 minutes in this configuration 
and
        ucblinks 5 minutes on top of that.  The number of /dev/[r]sd names 
generated
        by ucblinks alone was 262k and since these names are at the top /dev
        level, greatly contribute to system sluggishness.  For example, > 5 
minute
        logins.  With the /dev/[r]sd names removed, system responsiveness was
        as expected.

4. Technical Description:
     4.1. Details:

        Since committed interfaces can only be obsoleted in a minor release
        and a way to provide relief to existing customers is required,
        a two-step process is proposed.

        In the current minor release, complete the EOF, removing ucblinks,
        and provide a note in the next available release with intention
        to obsolete said interfaces.

        For patch/macro release relief, it is proposed to introduce a
        service to manage ucblinks: svc:/system/ucb-device-names.  With
        a default of disabled, the out-of-the box experience will be
        improved with no ucblinks generated and existing ucb compatible
        names removed.  Enabling the service will generate ucb compatible
        names by running ucblinks, for any customer who desires this
        compatibility to be retained.

        The set of UCB compatible names is:

        UCB link name           Standard name           Device type

         /dev/[r]fd%d           /dev/[r]diskette        fd floppy drives
         /dev/[r]sr%d           /dev/[r]dsk/*           sd/atapi cdrom drives
         /dev/[r]sd%d           /dev/[r]dsk/*           sd disk drives
         /dev/[r]n%d            /dev/rmt/*              st tape drives

        Support for the following is removed:

                xd, xt, xy

        The following appear to be ucb compatible names, with code within
        ucblinks building them, but devfsadm builds them also so that
        removing the ucblinks code will not affect these names:

         /dev/fb%d              /dev/fbs/*              framebuffers
         /dev/tty[d]%d          /devices link           serial devices
         /dev/tty[a-z]          /devices link           serial devices


     4.2. Bug/RFE Number(s):

        6785226 devfsadm -C does not help to clean up the device tree.

     4.5 Interfaces:

        Minor release:
        --------------
        /usr/ucb/ucblinks(1B)           Obsolete        ucblinks end-of-feature
         /dev/[r]fd%d                   Obsolete        floppy device /dev names
         /dev/[r]sr%d                   Obsolete        cdrom /dev names
         /dev/[r]sd%d                   Obsolete        disk /dev names
         /dev/[r]n%d                    Obsolete        tape /dev names
        

        Patch/Macro release:
        --------------------
        svc:/system/ucb-device-names            Uncommitted     service, 
disabled by default
        /lib/svc/method/ucb-device-names        Proj. Priv.     service method
        /var/svc/manifest/system/               Proj. Priv.     service manifest
                ucb-device-names.xml
        /usr/ucb/ucblinks(1B) -C                Uncommitted     ucblinks cleanup

        The above patch/micro interfaces are not to be carried forward to the
        minor release.


     4.6. Doc Impact:

        Minor release:
        --------------
        ucblinks(1B) man page to be removed.

        Patch/Macro release:
        --------------------
        ucblinks(1B) man page update - suggested changes provided.

     4.12. Dependencies:

        There are no uses made of any /dev ucb compatible name within solaris.
        The base install of OpenSolaris does not include /usr/ucb/ucblinks.

        Some tools such as iostat generate device names using the 
<driver><instance>
        form, equivalent to a ucb device name.  iostat does have an option (-n)
        to generate reports using /dev/[rd]dsk device names. [2]

        The same <driver><instance> names are logged along with device errors in
        the system log and one way to map such names to the physical device has
        been via the /dev ucb compatible name.  Libdevinfo provides a method to
        do the same mapping.  This is used by iostat(1M) and is available for 
usr
        by other tools as needed. [3]
        


5. Reference Documents:

        [1] PSARC/1996/430 iostat(1M) enhancements for device statistics
        [3] PSARC/2006/519 Metadevice Names in iostat/vmstat Output
        [2] PSARC/2000/310 libdevinfo devlinks interfaces

6. Resources and Schedule:

         http://tethys.sfbay/export/ws/onnv-ucb-svc

    6.5. ARC review type:
         FastTrack

    6.6. ARC Exposure:
         open



SunOS/BSD Compatibility Package Commands             ucblinks(1B)



NAME
      ucblinks - adds /dev entries to give  SunOS  4.x  compatible
      names to SunOS 5.x devices

SYNOPSIS
      /usr/ucb/ucblinks [-e rulebase] [-r rootdir] [-C]                         
|

      svc:/system/ucb-device-names


DESCRIPTION
      ucblinks creates symbolic links under the /dev directory for
      devices  whose  SunOS  5.x names differ from their SunOS 4.x
      names. Where possible, these symbolic  links  point  to  the
      device's  SunOS  5.x name rather than to the actual /devices
      entry.

      ucblinks does not remove unneeded compatibility links; these
      must be removed by hand.

      ucblinks  should  be  called  each  time   the   system   is
      reconfiguration-booted,  after  any new SunOS 5.x links that
      are needed have been created, since the reconfiguration  may
      have resulted in more compatibility names being needed.

      In releases prior to SunOS 5.4, ucblinks used a  nawk  rule-
      base  to  construct the SunOS 4.x compatible names. ucblinks
      no longer uses  nawk for  the  default  operation,  although
      nawk  rule-bases  can  still be specifed with the -e option.
      The  nawk rule-base equivalent  to  the  SunOS  5.4  default
      operation can be found in /usr/ucblib/ucblinks.awk.

      The svc:/system/ucb-device-names service controls whether                 
|
      the system runs ucblinks(1B) on reconfigure boot.  When                   
|
      enabled, ucblinks(1B) is run, both at that time and on                    
|
      subsequent reconfiguration boots.  When disabled, ucblinks(1B)            
|
      is run in clean-up (-C) and ucb device names will no longer               
|
      be reconstructed on reconfigure boot.                                     
|
                                                                                
|
      The svc:/system/ucb-device-names service is by default disabled.          
|


EXAMPLES                                                                        
|
                                                                                
|
      Example 1: Querying the state of the service                              
|
                                                                                
|
        # svcs system/ucb-device-names                                          
|
        STATE          STIME    FMRI                                            
|
        disabled       13:19:49 svc:/system/ucb-device-names:default            
|
                                                                                
|
      Example 2: Enabling the service                                           
|
                                                                                
|
        # svcadm enable system/ucb-device-names                                 
|
                                                                                
|
      Example 2: Enabling the service                                           
|
                                                                                
|
        # svcadm disable system/ucb-device-names                                
|


OPTIONS
      -e rulebase    Specify  rulebase  as  the  file   containing
                     nawk(1) pattern-action statements.


      -r rootdir     Specify rootdir as the directory under  which
                     dev  and  devices  will be found, rather than
                     the standard root directory /.
                                                                                
|
      -C                    Clean up /dev ucb compatible device names.          
        |
                                                                                
|

FILES
      /usr/ucblib/ucblinks.awk    sample rule-base for compatibil-
                                  ity links

ATTRIBUTES
      See attributes(5) for descriptions of the  following  attri-
      butes:
      ____________________________________________________________
     |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
     |_____________________________|_____________________________|
     | Availability                | SUNWscpu                    |
     |_____________________________|_____________________________|

SEE ALSO
      devlinks(1M), disks(1M), ports(1M), tapes(1M), attributes(5)


Reply via email to