+1.  I'd love an option to select only the output for a given driver or
a given cpu, in addition to the sort facility.  I guess grep, cut, awk,
and friends can be used to extract that though. :-)

        - Garrett

On Wed, 2010-06-02 at 11:54 -0700, Govinda Tatti wrote:
> I'm sponsoring the following fast track for Andy Sang. The timer is
> set to expire on 06/09/2010.
> 
> The fast-track and man page documents are located in the case directory
> under "materials/"
> 
>      - Govinda
> 
> Template Version: @(#)sac_nextcase 1.70 03/30/10 SMI
> This information is Copyright (c) 2010, Oracle and/or its affiliates. All 
> rights reserved.
> 1. Introduction
>      1.1. Project/Component Working Name:
>        PCITool Output Improvement
>      1.2. Name of Document Author/Supplier:
>        Author:  Andy Sang
>      1.3  Date of This Document:
>       02 June, 2010
> 4. Technical Description
> 4. Technical Description:
>     4.1 Project Summary
> 
>     PCITool is a low-level tool which provides a facility for getting and
>     setting interrupt routing information. It is first introduced by
>     PSARC/2005/232 and then made public by PSARC/2009/215. It's enhanced
>     to support retargeting MSI/X interrupts by PSARC/2009/340 and improved
>     to support multi-CPU x86 system by PSARC/2009/665.
> 
>     Currently PCITool output doesn't provide enough interrupt information
>     to the customer. To improve PCITool more efficient and friendly, this
>     project will define the changes to PCITool to retrieve more interrupt
>     information from kernel, and also will propose some output changes.
> 
>     These changes are expected to be backported to S10 after the changes
>     of PSARC/2009/340 and PSARC/2009/665 are backported, so micro/patch
>     binding is requested.
> 
>     4.2 PCITool syntax changes
> 
>     Current syntax:
>       pcitool pci@<unit-address>  -i<cpu#,ino#>  | all
>       [ -r [ -c ] | -w<cpu#>  [ -g ] ] [ -v ] [ -q ]
> 
>       pcitool pci@<unit-address>  -m<cpu#,msi#>  | all
>       [ -r [ -c ] | -w<cpu#>  [ -g ] ] [ -v ] [ -q ]
> 
>     Proposed syntax:
>       pcitool pci@<unit-address>  -i<cpu#, ino#>  |
>          [ all [ -s cpu | driver ][ -h | -d ] ]
>          [ -r [ -c ] | -w<cpu#>  [ -g ] ] [ -v ] [ -q ]
>       
>       pcitool pci@<unit-address>  -m<cpu#, msi#>  |
>          [ all [ -s cpu | driver ][ -h | -d ] ]
>          [ -r [ -c ] | -w<cpu#>  [ -g ] ] [ -v ] [ -q ]
> 
>     4.3 PCITool feature changes
> 
>     - A new function to make the "all" in "-i all" optional.
>     - A new option, "-s cpu | driver" to sort by cpu or driver name.
>     - A new option switch, "-d" and "-h" control displaying all numbers
>       in decimal or hexadecimal. No "0x" prefix is used in the output
>       when the -h option is used. The numbers are by default display in
>       decimal.
> 
>     4.4 PCITool output changes
> 
>     This project adds some fields to improve the PCITool output, include:
>     IRQ/MSG, Type, PIL, APIC/Mondo, Share, inum.
> 
>     In the output, the Driver field displays driver information for the
>     interrupts from the real device as below, while it displays ISR name.
>         drivername # instance number [inum]
> 
>     Current output:
> 
>     Show all interrupt information on /p...@0,0
> 
>        # pcitool /p...@0,0 -i all
>        0x0,0x21: pcieb     3    /p...@0,0/pci8086,3...@4
>        0x0,0x22: mpt       0    /p...@0,0/pci8086,3...@4/pci1000,3...@0
>        0x0,0x24: asy       0    /p...@0,0/i...@1f/a...@1,3f8
> 
>     Proposed output:
> 
>     Show all interrupt information on /p...@0,0
> 
>        # pcitool /p...@0,0 -i
>        CPU  Vect IRQ  Type   PIL  APIC/INT#  Share Driver            Path
>        0    32   9    FIXED  9    -          1     acpi_sci_vect     -
>        0    33   -    MSI    7    -          1     pcieb#3[0]        
> /p...@0,0/pci8086,3...@4
>        0    34   -    MSI    5    -          1     mpt#0[0]          
> /p...@0,0/pci8086,3...@4/pci1000,3...@0
>        0    35   -    MSI    5    -          1     mpt#0[1]          
> /p...@0,0/pci8086,3...@4/pci1000,3...@0
>        0    36   4    FIXED  12   1/12       1     asy#1[0]          
> /p...@0,0/i...@1f/a...@1,3f8
> 
>     Show all interrupt information on /p...@0,0, sort by driver name,
>     display numbers in hexadecimal
> 
>        # pcitool /p...@0,0 -i all -s driver -h
>        CPU  Vect IRQ  Type    PIL  APIC/INT#  Share  Driver            Path
>        0    20   9    FIXED   9    -          1      acpi_sci_vect     -
>        0    24   4    FIXED   c    1/c        1      asy#1[0]          
> /p...@0,0/i...@1f/a...@1,3f8
>        0    22   -    MSI     5    -          1      mpt#0[0]          
> /p...@0,0/pci8086,3...@4/pci1000,3...@0
>        0    23   -    MSI     5    -          1      mpt#0[1]          
> /p...@0,0/pci8086,3...@4/pci1000,3...@0
>        0    21   -    MSI     7    -          1      pcieb#3[0]        
> /p...@0,0/pci8086,3...@4
> 
>     Note that the header is different on between x86 platforms and sparc
>     platforms since the some item meaning is different. The detail is
>     that "Vector" vs "INO", "IRQ" vs "MSG"  and  "APIC/INT#"  vs "Mondo"
>     as below example:
> 
>     Show all interrupt information on /p...@400 on sparc platform
> 
>        # pcitool /p...@400 -i all
>        CPU  INO  MSG  Type    PIL  Mondo   Share   Driver            Path
>        81   21   -    Fixed   9    1045    1       ohci#0[0]         
> /p...@400/p...@0/p...@1/p...@0/u...@0
>        44   25   254  MSI-X   6    1049    1       nxge#0[0]         
> /p...@500/p...@0/p...@8/netw...@0
>        75   56   48   PCIe    9    1110    1       px#1[0]           /p...@500
> 
>     4.5 Data structure changes
> 
>     pcitool_intr_get_t
> 
>     This is the argument data structure for PCITOOL_DEVICE_GET_INTR ioctl,
>     which retrieve a given interrupt information.
> 
>     This project adds some new fields to get more information, including
>     IRQ/MSG, Type, PIL, APIC/Mondo, Share, inum, State, Bus, Triger.
> 
>     4.6 Bug/RFE Number(s)
> 
>     The changes described in this case will be done as a follow on work to the
>     following RFE:
> 
>     CR 6669984 Solaris x86 need to provide large number of interrupt vectors
> 
>     4.7 Interfaces
> 
>     Imported Interfaces
> 
>     Interface                 Stability       Comments
>     ----------------------------+---------------+--------------------------
>     pcitool                     Project               Some syntax changes. 
> Added
>                                 Private          Some new fields (IRQ/MSG,
>                                               Type,PIL,APIC/Mondo,Share,
>                                               inum) changed output format
>     PCITOOL_DEVICE_GET_INTR     Consolidation    Ioctl to retrieve more intr
>                                 Private               information
>     pcitool_intr_get_t          Consolidation    PCITOOL_DEVICE_GET_INTR arg
>                                 Private          data structure
>     -----------------------------------------------------------------------
> 
>     4.8 References
> 
>     [1]  PCITool and its nexus ioctl support - PSARC/2005/232
>       http://sac.sfbay.sun.com/PSARC/2005/232
> 
>     [2]  PCITool Public Interrupts - PSARC/2009/215
>       http://sac.sfbay.sun.com/PSARC/2009/215
> 
>     [3]  Interrupt Affinity Interfaces and PCITool Enhancements - 
> PSARC/2009/340
>       http://sac.sfbay.sun.com/PSARC/2009/340
> 
>     [4]  PCITool Extensions - PSARC/2009/665
>       http://sac.sfbay.sun.com/PSARC/2009/665
> 
> 6. Resources and Schedule
>      6.4. Steering Committee requested information
>       6.4.1. Consolidation C-team Name:
>               ON
>      6.5. ARC review type: FastTrack
>      6.6. ARC Exposure: open
> 
> _______________________________________________
> opensolaris-arc mailing list
> [email protected]


_______________________________________________
opensolaris-arc mailing list
[email protected]

Reply via email to