I am sponsoring this case for Edward Gillett.
Requested binding is patch/micro, timeout 08/15/2007.

-Artem

Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2007 Sun Microsystems
1. Introduction
     1.1. Project/Component Working Name:
         MSI-X interrupt limit override
     1.2. Name of Document Author/Supplier:
         Author:  Edward Gillett
     1.3  Date of This Document:
        07 August, 2007
4. Technical Description

4.1. Summary

This proposal provides a short-term solution for device drivers to
request and receive more MSI-X interrupt resources than the current
default limit. The future long-term solution will be provided by the
Interrupt Resource Management (IRM) project. Proposed solution will be
implemented on SPARC only.


4.2. Problem

Even though drivers can request arbitrary number of interrupts via
ddi_intr_alloc(9F), currently the number of returned MSI-X interrupts
is limited to 2. Some high-throughput drivers, such as nxge and qlc,
are forced to share 2 interrupts among multiple DMA channels, leading
to negative performance impact.

The reason for the limit of 2 is that the initial phase of the Advanced
DDI interrupt project (PSARC 2004/253) did not implement any IRM
interfaces. The IRM project is expected to integrate in the early 2008,
but there is immediate need to address performance issues on Sun's
latest platforms.


4.3. Proposal

Provide a boolean device property, "#msix-request", that indicates to
the DDI framework to attempt to allocate more interrupts than the
default limit, should the driver request it.

A device driver can create the proposed property if and only if it
requires more MSI-X interrupts than the default limit. It should create
this property before registering any of its interrupts. Sample code:

         (void) ddi_prop_create(DDI_DEV_T_NONE, dip,
             DDI_PROP_CANSLEEP, "#msix-request", NULL, 0);

The DDI framework will look for the proposed property as part of the
driver's interrupt registration process and will try to satisfy the
driver's MSI-X allocation request. The number of MSI-X interrupts that
can be allocated in this case may be less than or equal to what the
driver has requested. This depends on the availability of MSI-X
interrupt resources at that moment and also based on other platform
specific limitations. So, the driver must continue to check the
returned number of MSI-X interrupts per  ddi_intr_alloc(9F) and must
not assume its requests will be honored.

Constraints:

1) This solution is limited to MSI-X interrupts only and it will not be
    extended to MSI interrupts. This means device drivers will continue
    to receive the current default number of MSI interrupts irrespective
    of this special driver property.

2) Device drivers using MSI-X interrupts without this property will
    only receive the default MSI-X allocation.

3) At present, there is no plan to implement this feature on non-SPARC
    platforms. The property, if present, will be ignored on x86
    platforms. Business priority is to address performance issues on
    SPARC systems urgently, while the x86 platforms can wait for the
    long-term solution. Also, x86 systems provide much more limited
    interrupt resources and can suffer from allocating too many
    interrupts.

The proposed interface is Contracted Consolidation Private. Each driver
owner group is expected to contract the interfaces and transition to
the new IRM based interfaces when they are available.

4.4. Interfaces

interface     | stability                        | description
--------------+----------------------------------+----------------------
#msix-request | Contracted Consolidation Private | boolean property to
               |                                  | override MSI-X limit
--------------+----------------------------------+----------------------

Binding: patch/micro

4.5. References

PSARC 2004/253 Advanced DDI Interrupt Interfaces


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


Reply via email to