U Linuxu 6.8 već su implementirane zakrpe koje ubrzavaju TCP

Tux, maskota Linux kernela

Linux kernel je okosnica Linux operativnih sustava (OS) i temeljno je sučelje između hardvera računala i njegovih procesa.

Verzija kernela Linux 6.7 objavljen je prije samo nekoliko tjedana (početkom siječnja) i od tada Pokrenut je rad na razvoju Linuxa 6.8 a trenutno je već u svom drugom CR i do sada je vidio niz poboljšanja u različitim područjima, s fokusom na umrežavanje, temeljne protokole, BPF, API-je upravljačkih programa, podršku za novi hardver i ažuriranja upravljačkih programa.

Y među najvažnijim promjenama koji su objavljeni, jedan od njih se ističe i to je to Implementirana su poboljšanja vođena TCP stogom, kao rezultira značajnim poboljšanjima u performansama, posebno u scenarijima koji uključuju višestruke paralelne TCP veze. Ova poboljšanja dovela su do ubrzanja koje može doseći i do 40%.

La Optimizacija usmjerena na reorganizaciju polja unutar mrežnih struktura steka kao što su socks, netdev, netns i mibs. Ove prilagodbe, koje su provedene zbog povijesnih razloga, omogućile su bolju učinkovitost u upravljanju predmemorije procesora. Posebno je minimizirana upotreba linija predmemorije tijekom prijenosa podataka i optimiziran je pristup relevantnim varijablama.

Trenutno su strukture s mnogo varijabli u mrežnom stogu organizirane kronološki, logički, a ponekad i pristupom retku predmemorije.

Ova serija zakrpa pokušava reorganizirati glavni mrežni stog kako bi se smanjila potrošnja linije predmemorije tijekom faze prijenosa podataka. Konkretno, promatramo TCP/IP stog i brzinu u TCP-u.

Kao rezultat ovih pregleda, Uočeno je značajno povećanje TCP brzine, posebno kada se radi o rukovanju velikim brojem istodobnih TCP veza. Ovo poboljšanje posebno je vidljivo u okruženjima u kojima su mrežne operacije intenzivne i učinkovito upravljanje TCP vezama je ključno.

Od Ostale promjene i poboljšanjaeu se ističe:

  • Dodana introspekcija temeljena na mrežnoj vezi za otkrivanje statistike upotrebe memorije i recikliranja.
  • Refactoring TCP rukovanje SYN-Cookie za buduću eBPF kompatibilnost.
  • Smanjeni troškovi analize zaglavlja proširenja u GRO-u.
  • Reorganizira članove strukture nftables kako bi zadržao podatke kojima pristupa datapath na početku.
  • Uvedena je podrška za skupno brisanje MDB unosa mosta i praćenje TC blokirajućih portova.
  • Poboljšanja verifikatora, uključujući logiku ograničenja BPF zapisivanja, poboljšanja zapisivanja i podršku za globalne argumente BPF korisničkih apleta.
  • Početna implementacija TX metapodataka za AF_XDP s podrškom u mlx5 i stmmac upravljačkim programima.
  • Ispravljene kCFI greške u svim oblicima BPF neizravnih poziva.
  • Podrška za opcije uid/gid prilikom montiranja bpff-ova i dodatnih proširenja za verifikator.
  • Automatsko generiranje dokumentacije Netlink obitelji iz YAML specifikacija i dodatnih ispravaka opisa modula.
  • Sprječavanje neispravnog oslobađanja stranica koje pripadaju skupu stranica.
  • Apstrakcije u Rustu za mrežne PHY upravljačke programe i uvođenje podrške za čekanje i NAPI u netdev Netlink sučelju.
  • Filtriranje obavijesti za devlink i poboljšanja u PHY provjeri valjanosti.
  • Izlaganje vrijednosti pomaka frakcijske frekvencije i pretvaranje starih rukovatelja u povratne pozive uklanjanja platforme koji vraćaju void.
  • Dodana podrška za čitanje/pisanje PHY MMD paketa.
  • Dodana podrška za razne Ethernet uređaje, uključujući uređaje Octeon CN10K, Broadcom 5760X P7, Qualcomm SM8550 SoC i Texas Instrument DP83TG720S PHY.
  • Uvođenje IMC Networks Bluetooth radija.
  • Nadogradnje za brze mrežne kartice, ugrađene mrežne kartice, sklopke za podatkovne centre, ugrađene sklopke i Ethernet PHY.
  • Podržava poboljšanja i dodatke za razne WiFi i Bluetooth kontrolere.
  • Uklanjanje raznih WiFi upravljačkih programa uključujući libertas, Atmel at76c50x, HostAP, zd1201, Orinoco, Aviator/Raytheon, Planet WL3501 i USB 802.11b RNDIS upravljačke programe.

konačno ako jesi zainteresiran za saznanje više o tome, možete provjeriti pojedinosti na sljedećem linku.