Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Linux a četnost přerušení sítě

Ahoj, mám spíš takový teoretický dotaz, snažím se snížit spotřebu a podle článku si myslím, že linux kvůli obsluze síťového provozu často odbavuje přerušení. Např když stahuji 300kBps, tak "IRQ47 s názvem PCI-MSI-edge enp7s0" vyvolává okolo 300 přerušení za sekundu. Jde to nějak snížit?

Například když neustále hýbu s myší, tak se přerušení IRQ19 uhci_hcd:usb5 vyšlplhá na hodnotu 125.

Předmět Autor Datum
Urcite to ide znizit napriklad tak, ze si napises vlastny ovladac, ktory nebude generovat tolko prer…
KiloViktor 15.06.2013 12:02
KiloViktor
jde to snížit síťovkou, která podporuje offload.
touchwood 15.06.2013 12:47
touchwood
Ano, v článku se píše, že je to třeba důležité pro servery pro obchodování na burze (viz Janeček a j…
Lízard 2 15.06.2013 13:47
Lízard 2
Ovladac moze byt napisany ako: 1.modul, ktory sa zavadza dynamicky (podla potreby) do jadra, alebo 2…
KiloViktor 15.06.2013 21:00
KiloViktor
Nene, já o přerušení vůbec nečtu a takhle rozsháhle se tomu nechci věnovat. Zajímala mě jen existenc…
Lízard 2 15.06.2013 22:52
Lízard 2
žádný takový parametr není.
touchwood 15.06.2013 23:01
touchwood
Nie, tak jednoduche to nieje ani zdaleka, ze by stacilo len nieco prehodit. Pokial nezvladas si napi… poslední
KiloViktor 15.06.2013 23:09
KiloViktor

Urcite to ide znizit napriklad tak, ze si napises vlastny ovladac, ktory nebude generovat tolko preruseni. Je to ale nieco za nieco. Prerusenia sa znizia, ovsem zvysi sa latencia. Ak ti to nevadi, mozes experimentovat.

Ano, v článku se píše, že je to třeba důležité pro servery pro obchodování na burze (viz Janeček a jeho systém RSA), ale to já jaksi nepotřebuji.
nejde to trochu jednodušeji, třeba nějakým parametrem při načítání ovladače (mám driver r8169)

jak se vůbec se předávají argumenty při načítání driverů?
modprobe <module_name> [parameter=value] ?

a ještě je ve světě linuxu modul výraz pro ovladač?

PS: není offload něco jiného? Jako počítání kontrolních součtů paketů? Se zatížením cpu nemám problém

Jinak zde je nějaký výpis:

16 t@dell ~ % sudo  cpupower monitor                                                                                                                     :(
    |Mperf               || Idle_Stats                
CPU | C0   | Cx   | Freq || POLL | C1   | C2   | C3   
   0|******|******|******||  0,00|  0,03|  2,54| 79,84
   1|******|******|******||  0,00|  0,00|  3,45| 93,87
t@dell ~ % sudo  cpupower idle-info 
CPUidle driver: acpi_idle
CPUidle governor: menu

Analyzing CPU 0:
Number of idle states: 4
Available idle states: POLL C1 C2 C3
POLL:
Flags/Description: CPUIDLE CORE POLL IDLE
Latency: 0
Usage: 144
Duration: 5371
C1:
Flags/Description: ACPI FFH INTEL MWAIT 0x0
Latency: 1
Usage: 22923
Duration: 2164090
C2:
Flags/Description: ACPI FFH INTEL MWAIT 0x10
Latency: 1
Usage: 568506
Duration: 246494165
C3:
Flags/Description: ACPI FFH INTEL MWAIT 0x50
Latency: 162
Usage: 1642682
Duration: 8311142654

Ovladac moze byt napisany ako:
1.modul, ktory sa zavadza dynamicky (podla potreby) do jadra, alebo
2.moze byt sucastou jadra

Niektore ovladace musia byt sucastou jadra ako napriklad ovladac pre radice SATA/PATA inak by jadro nenabehlo, kedze na to, aby sa natiahol modul musi byt v jadre podpora pre ovladanie diskov. Je to tradicny problem typu slepice-vejce.

Ak chces laborovat s preruseniami je nutne velmi(!) dobre poznat prerusovaci podsystem hardware a napojenie na system. Uz od davnych cias sa na prerusenia pouziva radic preruseni, ktory postupom vyvoja doznal mnohych zmien napriklad v tom, ze tych preruseni je uz konecne dostatok a nie len 2x8-1, alebo na XT len 8.

Tiez je dobre vediet, ze prerusenie od hardware nieje mozne zmeskat, alebo vynechat. Si predstav, ze by si zvukovej karte povedal, ze ma reagovat len sem tam obcas na nejake prerusenie. Zrejme by si nechcel pocuvat to, co z toho leze von za zvuk.

Ked si sa uz dal do citania clankov popisujucich prerusenie, tak este pohladaj aj dalsie, kde popisuju prerusenia podrobnejsie. Existuje metoda reakcie na prerusenia, ktora sa nazyva pooling. Mozno by ti vyhovovala viac.

Nie, tak jednoduche to nieje ani zdaleka, ze by stacilo len nieco prehodit.
Pokial nezvladas si napisat ovladac, alebo hacknut nejaky existujuci, nechaj to tak ako je. Perusenia su v Linuxe vyladene celkom dobre. Lepsie je na tom uz jedine Windows, ktory ma prerusenia robene velmi solidne.
V parametroch modulu toho moc nenajdes, skor hladaj v /proc

Zpět do poradny Odpovědět na původní otázku Nahoru