Začněme bez napi a přerušte slučování.
První případ:livelock. To znamená, že když mnoho přerušení odesílá z procesu serveru nepřetržitě, CPU zpracovává pouze přerušení a nikdy nedovolí, aby proces na úrovni uživatele běžel a skutečně obsluhoval požadavky. Pro něj vytvoříme napi, které to zvládnou hybridním režimem (přerušení + dotazování). Když dojde k přerušení, zpracujte jej a chvíli dotazujte, abyste vyřešili požadavky na podsekvenci.
Druhý případ:optimalizace. Před vyvoláním přerušení zařízení nejprve chvíli čeká, než doručí přerušení do CPU. Během čekání mohou být brzy dokončeny další požadavky, a proto lze více přerušení sloučit do jednoho doručení přerušení, čímž se sníží režie zpracování přerušení.
Abych to uzavřel, není mezi nimi žádný konflikt. A jsou pro různé případy, i když napi může také optimalizovat režii CPU.
Odkaz:Principy návrhu počítačových systémů.
Považuji NAPI za formu slučování přerušení. Myslím, že vaše otázka může pramenit z nedorozumění ohledně NAPI. Za prvé, přerušení jsou spojena s NAPI. Také průzkum NAPI vlastně není „marný“. Pamatujte, že pro NAPI je myšlenkou, že provoz s vysokou propustností je nárazový. NAPI se „spustí“ až poté, co dojde k „přerušení přijatého paketu“.
Zde je rychlý přehled toho, jak se má NAPI používat:
Jádro spustí přerušení „přijatý paket“, které detekuje ovladač síťového zařízení pomocí NAPI. Ovladač síťového zařízení pak zakáže přerušení související s přijímáním paketů a pomocí NAPI říká síťovému subsystému Linux, aby se dotazoval na ovladač zařízení. Funkce dotazování je implementována ovladačem zařízení a je předána síťovému subsystému a obsahuje obsluhu paketů ovladače zařízení. Po přijetí dostatečného množství paketů nebo po vypršení časového limitu se přerušení přijímání paketů znovu povolí a vše začne znovu.
NAPI je tedy v podstatě jen centralizované API v síťovém subsystému Linux pro podporu slučování přerušení, aby se omezily situace při příjmu živého vysílání. NAPI poskytuje vývojářům ovladačů zařízení čistý rámec pro slučování přerušení. NAPI neběží pořád, ale děje se to pouze tehdy, když je provoz skutečně přijat, takže jde v podstatě o schéma spojování přerušení... Alespoň v mé knize.
Poznámka :To vše bylo v kontextu ovladače síťového zařízení používajícího NAPI, ale ve skutečnosti lze NAPI použít pro jakýkoli druh přerušení. To je také jedna z výhod NAPI.
Pokud se vyskytnou nějaké chyby v mém porozumění, neváhejte je upozornit!