A Meta nagy kernel mérnöki csapata az egyik legújabb Linux kernel optimalizálásként azon dolgozik, hogy a /proc/interrupts olvasása kevesebb erőforrást igényeljen. A szervereik monitorozása gyakran olvassa a /proc/interrupts fájlt, és a hatalmas gépparkjukon ez idővel már mérhető költséggé vált.
A Metánál dolgozó Dmitry Ilvokhin a /proc/interrupts optimalizálását a decimális számok kiírásának gyorsításával érte el: bevezette a seq_printf() használatát, és hozzáadott egy segédfüggvényt is, amely szóközöket és decimális számokat tud kiírni a printf() összetettebb formázásának többletterhe nélkül.
Bár elsőre jelentéktelennek tűnhet, ezek a kiírási módosítások a /proc/interrupts esetén 29%-os relatív gyorsulást hoztak a /proc/interrupts kiírásához szükséges időben. Egy olyan hatalmas szerverflottán, ahol rendszeresen rögzítik az interrupts kimenetét, ez a megtakarítás bőven megéri.
"A monitorozó eszközök időszakosan átnézik a /proc/interrupts fájlt, hogy metrikákat exportáljanak idősorként későbbi elemzéshez és vizsgálathoz.
Nagy gépparkokban minden gépen lekérdezik a /proc/interrupts fájlt (gyakran néhány másodpercenként). Az összesített többletterhelés gyorsan összeadódik több ezer node-on, ezért a statisztikák előállítási költségének csökkentése mérhető üzemeltetési hatással jár. Mivel a trend továbbra is a gépenkénti magasabb magszám felé mutat, ez a költség idővel még látványosabbá válik, hiszen az interrupt számlálók CPU-nként külön vannak. A Meta gépparkjában ezt a többletterhelést nagy léptékben is megfigyeltük.
Bár hosszú távon egy bináris /proc felület jobb megoldás lenne az alacsonyabb formázási (kernel oldali) és feldolgozási (userspace oldali) többletterhelés miatt, a szöveges felületet még egy ideig használni fogják, akkor is, ha elérhetővé válnak jobb megoldások. Emiatt a /proc/interrupts kiírókódjának optimalizálása továbbra is hasznos.
A seq_printf() függvény támogatja a decimális számok kiírásához szükséges összetett formátumstringeket, de erre nincs szükség a /proc/interrupts CPU-nkénti számlálóinak kiírásához. Ehelyett a seq_put_decimal_ull_width() függvényt lehet használni a CPU-nkénti számlálók kiírására, mert ebben az esetben csak nagyon korlátozott formázás kell. Hasonló optimalizálási ötletet már használnak a show_interrupts() függvényben is.
Mellékhatásként ez egységesíti az x86 leírásokat az általános interrupts eseményleírásokkal.
Az eltelt időben mért relatív gyorsulás nagyjából 29%."

