roby68
Quel problema di BSD (o di Windows) non lo vedi a meno di non usare PPPoE. Le schede di rete 10G server sono ottimizzate per il classico traffico TCP/IP, non per la PPPoE. PPPoE "lavora" tra Ethernet e TCP/IP, e "rompe" gli algoritimi di hash di diversi tipi di schede di rete per lo smistamento dei pacchetti.
BSD ha fatto la scelta che di default tutto il processo di un pacchetto avviene nel contesto di un interrupt generato dalla scheda - però questo fa sì che tutto avvenga con il core associato alla coda. È efficiente se il traffico è smistato sulle code hardware in maniera appropriata, cosa che con molte schede di rete non succede con PPPoE (specialmente quelle che implementano RSS), che finisce tutto in una coda. Abilitando "deferred" invece di "direct" il pacchetto viene invece semplicemente estratto dalla coda hardware e messo a disposizione di altri thread che lo possono processare con altri core. C'è almeno un context-switch in più, ma viene bilanciato da una distribuzione più equa del carico sui core.
Sono problemi che in LAN difficilmente vedi, specialmente in LAN relativamente semplici dove il traffico è piuttosto standard.