Hello, On Tue, Oct 08, 2013 at 02:22:16PM +0200, Alexander Gordeev wrote: > If we talk about pSeries quota, then the current pSeries pci_enable_msix() > implementation is racy internally and could fail if the quota went down > *while* pci_enable_msix() is executing. In this case the loop will have to > exit rather than retry with a lower number (what number?). Ah, okay, so that one is already broken. > In this regard the new scheme does not bring anything new and relies on > the fact this race does not hit and therefore does not worry. > > If we talk about quota as it has to be, then yes - the loop scheme seems > more preferable. > > Overall, looks like we just need to fix the pSeries implementation, > if the guys want it, he-he :) If we can't figure out a better interface for the retry case, I think what can really help is having a simple interface for the simpler cases. > > The problem case is where multiple msi(x) allocation fails completely > > because the global limit went down before inquiry and allocation. In > > the loop based interface, it'd retry with the lower number. > > I am probably missing something here. If the global limit went down before > inquiry then the inquiry will get what is available and try to allocate with > than number. Oh, I should have written between inquiry and allocation. Sorry. Thanks. -- tejun