U Linuxu 6.8, zakrpe koje ubrzavaju TCP su već implementirane

Tux, maskota Linux kernela

Linux kernel je okosnica Linux operativnih sistema (OS) i osnovni je interfejs između hardvera računara i njegovih procesa.

Kernel verzija Linux 6.7 je objavljen prije samo nekoliko sedmica (početkom januara) i od tada Pokrenut je rad na razvoju Linuxa 6.8 a trenutno je već u svojoj drugoj CR i do sada je doživio niz poboljšanja u različitim oblastima, sa fokusom na umrežavanje, osnovne protokole, BPF, API-je drajvera, podršku za novi hardver i ažuriranja drajvera.

Y među najvažnijim promjenama koji su objavljeni, jedan od njih se izdvaja i to je to Implementirana su poboljšanja vođena TCP stekom, šta rezultira značajnim poboljšanjima performansi, posebno u scenarijima koji uključuju više paralelnih TCP veza. Ova poboljšanja su dovela do ubrzanja koje može doseći i do 40%.

La Optimizacija se fokusirala na reorganizaciju polja unutar struktura mrežnog steka kao što su socks, netdev, netns i mib. Ova prilagođavanja, koja su sprovedena iz istorijskih razloga, omogućila su bolju efikasnost u upravljanju keš memorijom procesora. Konkretno, upotreba keš linija tokom prenosa podataka je svedena na minimum, a pristup relevantnim varijablama je optimizovan.

Trenutno su strukture sa mnogo varijabli u mrežnom stogu organizovane hronološki, logički, a ponekad i pristupom keš liniji.

Ova serija zakrpa pokušava reorganizirati mrežni stog jezgre kako bi se smanjila potrošnja keš linije tokom faze prijenosa podataka. Konkretno, posmatramo TCP/IP stog i brzinu u TCP-u.

Kao rezultat ovih pregleda, Primećeno je značajno povećanje TCP brzine, posebno kada je u pitanju rukovanje velikim brojem istovremenih TCP veza. Ovo poboljšanje je posebno primetno u okruženjima u kojima su mrežne operacije intenzivne, a efikasno upravljanje TCP vezama je ključno.

Of the Ostale promjene i poboljšanjakoji se ističu:

  • Dodata introspekcija zasnovana na netlink-u kako bi se otkrila statistika upotrebe memorije i recikliranja.
  • Refaktoriranje SYN-Cookie TCP rukovanja za buduću eBPF kompatibilnost.
  • Smanjeni troškovi raščlanjivanja zaglavlja ekstenzije u GRO.
  • Reorganizuje članove strukture nftables da zadrži podatke kojima pristupa datapath na početku.
  • Uvedena podrška za masovno brisanje MDB unosa mosta i praćenje TC blokirajućih portova.
  • Poboljšanja verifikatora, uključujući logiku ograničenja BPF logiranja, poboljšanja evidentiranja i podršku za globalne argumente BPF korisničkog apleta.
  • Početna implementacija TX metapodataka za AF_XDP sa podrškom u mlx5 i stmmac drajverima.
  • Ispravljene kCFI greške u svim oblicima BPF indirektnih poziva.
  • Podrška za uid/gid opcije kada se montiraju bpffs i dodatna proširenja na verifikator.
  • Automatsko generiranje Netlink familije dokumentacije iz YAML specifikacija i dodatne korekcije opisa modula.
  • Sprečavanje nepravilnog objavljivanja stranica koje pripadaju grupi stranica.
  • Apstrakcije u Rustu za mrežne PHY drajvere i uvođenje podrške za čekanje i NAPI u netdev Netlink interfejs.
  • Filtriranje obavijesti za devlink i poboljšanja u PHY validaciji.
  • Izlaganje frakcijske vrijednosti pomaka frekvencije i pretvaranje starih rukovalaca u povratne pozive uklanjanja platforme koji vraćaju void.
  • Dodata podrška za čitanje/pisanje PHY MMD paketa.
  • Dodata podrška za različite Ethernet uređaje, uključujući Octeon CN10K uređaje, Broadcom 5760X P7, Qualcomm SM8550 SoC i Texas Instrument DP83TG720S PHY.
  • Uvođenje Bluetooth radija IMC Networks.
  • Nadogradnje za brze NIC-ove, ugrađene NIC-ove, prekidače za data centar, ugrađene prekidače i Ethernet PHY.
  • Podržava poboljšanja i dodatke za različite WiFi i Bluetooth kontrolere.
  • Uklanjanje raznih WiFi drajvera uključujući libertas, Atmel at76c50x, HostAP, zd1201, Orinoco, Aviator/Raytheon, Planet WL3501 i USB 802.11b RNDIS drajvere.

konačno ako jesi zainteresovani da saznaju više o tome, možete provjeriti detalje na sljedećem linku.