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 >>>>>>>> >>>>>>>> >>>>>> >>>> >>>> >>> >>