PCI Multimedia Class Interrupt Priorities [PSARC/2008/343 FastTrack timeout 06/03/2008]
Garrett D'Amore
gdamore at Sun.COM
Wed May 28 13:30:18 PDT 2008
OK. Thanks. I'm marking this case approved.
- Garrett
Wesley Shao wrote:
> I have no objection to that.
>
> Thanks,
>
> Wes
>
> Garrett D'Amore wrote:
>> Okay, it sounds like what you're requesting is really a change of
>> additional things, outside the scope of this case.
>>
>> Can I suggest we go forward with 8 for now, and if you're going to do
>> some additional changes to error handling, bridges, or other things,
>> you run another case to make those changes? (And you can push audio
>> down to 7 at that time, if you need to.)
>>
>> Also, not *all* audio devices are DMA. There are several audio
>> devices which are PIO driven.
>>
>> The nice thing about this case is, once its done, we can remove the
>> interrupt-priorities override property from the driver.conf files, so
>> that if you want to adjust the priorities later, you can do so in the
>> nexus code, and not have to touch a gazillion different .conf files.
>>
>> -- Garrett
>>
>> Wesley Shao wrote:
>>> Today, 7 or 8 doesn't make much difference since practically no one is
>>> using 7 or 8. Some bus controllers are defaulted to use 9 because they
>>> could be proxy-ing interrupts on other devices behalf, but that is
>>> just the original intent and isn't known for sure.
>>>
>>> Going forward, for DMA devices, we need to push them as low as they
>>> can.
>>> As long as audio is above 6, we shouldn't be breaking any relative
>>> priority (thus causing performance differentiations, or video goes out
>>> of sync with audio).
>>>
>>> On a side note, we should move the rest of the 9 crowd (bridges,
>>> etc) to
>>> 8 and leave 9 for error handling. Currently error handling is above
>>> lock
>>> level and we are having major issues with it. That would be a different
>>> case though.
>>>
>>> In short, I think 7 is a better fit for audio.
>>>
>>> Wes
>>>
>>> Garrett D'Amore wrote:
>>>> Resending, since I forgot to add the CC to PSARC! Doh!
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> Subject:
>>>> Re: PCI Multimedia Class Interrupt Priorities [PSARC/2008/343
>>>> FastTrack timeout 06/03/2008]
>>>> From:
>>>> Garrett D'Amore <gdamore at sun.com>
>>>> Date:
>>>> Wed, 28 May 2008 13:04:06 -0700
>>>> To:
>>>> Wesley Shao <Wesley.Shao at Sun.COM>
>>>>
>>>> To:
>>>> Wesley Shao <Wesley.Shao at Sun.COM>
>>>>
>>>>
>>>> Wesley Shao wrote:
>>>>> I can't think of reasons for below audio and above networking. Modern
>>>>> audio devices (especially the HD ones) are all DMA based, interrupt
>>>>> priority becomes relatively less important. I would like to push
>>>>> for 7
>>>>> if we can.
>>>> Why? (I can't think of reasons either, but then again I can't think
>>>> of reasons for between audio and lock level.)
>>>>
>>>> Put another way, I'm not sure we buy anything by further reducing
>>>> the level below 8.
>>>>
>>>> I can definitely think of good reasons why even with DMA,
>>>> interrupts needs to be serviced in a timely fashion.
>>>> (Synchronization of audio with video, games, etc. as one example.
>>>> Certain kinds of low latency applications such as echo
>>>> cancellation, and VoIP processing, are other examples where one
>>>> wants to make sure that the processing latency is as low as we can
>>>> easily make it.)
>>>>
>>>> Btw, I'm putting PSARC back on the distribution list for this, as
>>>> this discussion really needs to be recorded in the case log.
>>>>
>>>> At ARC today, this case was approved for level 8. Its probably a
>>>> minor update if we think we should move to level 7, but I am a bit
>>>> more hesitant there, given the need for audio drivers to get
>>>> serviced promptly.
>>>>
>>>> -- Garrett
>>>>>
>>>>> Wes
>>>>>
>>>>> Garrett D'Amore wrote:
>>>>>> Wesley Shao wrote:
>>>>>>> Why not making it even lower, like 7 or 8? There are virtually
>>>>>>> no drivers
>>>>>>> using 7 or higher. That will give some breathing room in case we
>>>>>>> have to
>>>>>>> debug some drivers and want to put them between audio and 10.
>>>>>>
>>>>>> I'm open to this idea. Level 9 was what was already in use, and
>>>>>> seemed to be well tested, which is why I proposed it. But I'd be
>>>>>> happy to use 8, as well. I don't think audio drivers have any
>>>>>> dependencies on any other drivers/devices, apart from typical
>>>>>> lock-oriented dependencies upon the system timer.
>>>>>>
>>>>>> Using 8 allows 7 to be used for things that are "just below"
>>>>>> audio, and 9 to be used for things that are "just above". (I
>>>>>> can't think of any examples of either one of those... but maybe
>>>>>> someday someone else will.)
>>>>>>
>>>>>> Does anyone else have any thoughts?
>>>>>>
>>>>>> -- Garrett
>>>>>>>
>>>>>>> Wes
>>>>>>>
>>>>>>> Garrett D'Amore - sun microsystems wrote:
>>>>>>>> I'm submitting this fast-track case on my own behalf. It
>>>>>>>> probably could
>>>>>>>> qualify for self-review, but I want to give any interested
>>>>>>>> parties a chance
>>>>>>>> to comment.
>>>>>>>>
>>>>>>>> Requested binding is Patch on the basis that no real interfaces
>>>>>>>> are changing,
>>>>>>>> although realistically there is probaby little chance that
>>>>>>>> we'll backport this
>>>>>>>> to S10.
>>>>>>>>
>>>>>>>> Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
>>>>>>>> This information is Copyright 2008 Sun Microsystems
>>>>>>>> 1. Introduction
>>>>>>>> 1.1. Project/Component Working Name:
>>>>>>>> PCI Multimedia Class Interrupt Priorities
>>>>>>>> 1.2. Name of Document Author/Supplier:
>>>>>>>> Author: Garrett D'Amore
>>>>>>>> 1.3 Date of This Document:
>>>>>>>> 27 May, 2008
>>>>>>>> 4. Technical Description
>>>>>>>>
>>>>>>>> Fast-track: PCI Multimedia Class Interrupt Priorities
>>>>>>>> Requested Binding: Patch
>>>>>>>>
>>>>>>>> Problem
>>>>>>>> -------
>>>>>>>>
>>>>>>>> The current Solaris PCI nexus logic assigns high level
>>>>>>>> interrupts (level 12)
>>>>>>>> to devices that are in PCI class 4 (multimedia class). This
>>>>>>>> includes all
>>>>>>>> audio devices. (Most of which are either subclass 1 for legacy
>>>>>>>> audio
>>>>>>>> devices, or 3 for newer hdaudio compliant devices.)
>>>>>>>>
>>>>>>>> However, none of the current Solaris device drivers can operate
>>>>>>>> with such
>>>>>>>> high interrupt priorities. All of the audio drivers in Solaris
>>>>>>>> wind up
>>>>>>>> reassigning an interrupt priority of 9 using the undocumented
>>>>>>>> property
>>>>>>>> "interrupt-priorities" in their driver.conf(4) to overcome this
>>>>>>>> problem.
>>>>>>>>
>>>>>>>> (Recall that priority 10 is "lock level", the level above which
>>>>>>>> device drivers
>>>>>>>> must not use locks or other constructs which could result in
>>>>>>>> putting a thread
>>>>>>>> to sleep.)
>>>>>>>>
>>>>>>>> The project team is unaware of device drivers for any hardware
>>>>>>>> in the
>>>>>>>> multimedia class *other* than audio devices.
>>>>>>>>
>>>>>>>> The new audio framework proposed in PSARC 2008/318 will also be
>>>>>>>> unable to
>>>>>>>> function with high-level interrupts.
>>>>>>>>
>>>>>>>> Solution
>>>>>>>> --------
>>>>>>>>
>>>>>>>> We propose to change the default interrupt-priority for all
>>>>>>>> devices in the
>>>>>>>> multimedia class (PCI class 4) to 9. Experience has shown that
>>>>>>>> this
>>>>>>>> level is sufficiently high to meet the needs of low-latency
>>>>>>>> audio devices,
>>>>>>>> without requiring extraordinary measures normally required when
>>>>>>>> dealing with
>>>>>>>> high-level interrupts.
>>>>>>>>
>>>>>>>> As indicated, we are unaware of any devices supported by
>>>>>>>> Solaris that are in
>>>>>>>> the multimedia class other than those associated with audio
>>>>>>>> support.
>>>>>>>>
>>>>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>>>
>>>
>>
More information about the opensolaris-arc
mailing list