IO syuu@openbsd.org
IO Linux Vyatta PC
socket queue Process(User) Process(Kernel) input queue SW Intr Handler HW Intr Handler
NIC NIC:1GbE 10GbE CPU:1GHz 3.2GHz:CPU 1/10 CPU 1CPU
NIC NIC
socket queue Process(User) Process(Kernel) input queue SW Intr Handler HW Intr Handler
Interrupt Coalescing
NIC NIC NAPI Linux http://tinyurl.com/linuxnapi
NAPI socket queue Process(User) Process(Kernel) SW Intr Handler HW Intr Handler
NICCPU CPU 1Gbps Pentium4 2.4GHz CPU 80% CPU
socket queue Process(User) Process(Kernel) SW Intr Handler HW Intr Handler
TOE (TCP Offload Engine) NIC TCP/IP TOE OS OSTOE TOE
TOE (TCP Offload Engine) Linux WindowsOS http://bit.ly/offload RDMA, iscsi HBA
TCP Checksum Offload TCP Large Segment Offload 64KB NIC MTU Large Receive Offload LSONIC
Linux TCP Checksum Offload TCP Large Segment Offload 64KB NIC MTU Large Receive Offload LSONIC
NIC CPU
CPU cpu0 cpu1 Process(User) Process(User) socket queue Process(Kernel) socket queue Process(Kernel) SW Intr Handler SW Intr Handler HW Intr Handler HW Intr Handler
Receive Side Scaling CPU CPU CPU CPU
Receive Side Scaling cpu0 cpu1 cpu2 cpu3 RX Queue #0 RX Queue #1 RX Queue #2 RX Queue #3 hash queue 0 1 NIC
Receive Side Scaling Microsoft Scalable Network Initiative http://bit.ly/receivesidescaling Windows Linux PCI MSI-X NIC RSS
RPS(Linux) RSS NIC RSS CPU CPU CPU RSS
cpu3 cpu2 cpu1 cpu0 socket queue socket queue backlog #1 hash queue 0 1 backlog #2 backlog #3
RFS(Linux) CPU RPS
RPS
CPU
Intel http://bit.ly/ioatj NIC CPU OS CPU I/O CPU
TOE TOE CPU CPU TCP/IP TCP/IP CPU TOE
Intel I/O Acceleration Technology Intel QuickData Technology Direct Cache Access Receive Side Scaling Large Receive Offload Low Latency Interrupts
Intel QuickData Technology NIC DMA CPU OS
Intel QuickData Technology socket queue Process(User) Process(Kernel) SW Intr Handler HW Intr Handler
Direct Cache Access NIC DMA CPU NIC prefetch
DCA CPU Cache Fetch Snoop invalidate Writeback DMA Write Memory Controller Memory Memory Wirte I/O Device
DCA Snoop invalidate +hint DMA Write CPU Cache Memory Controller I/O Device Writeback HW Prefetch Memory Memory Wirte
Intel VT-c SR-IOV OS NIC VMDq VM IO
VM1 VM2 Hypervisor
Intel VT-d PCI Passthrough VM1 VM2 Hypervisor
SR-IOV VM1 VM2 Hypervisor
VMDq VM1 VM2 Hypervisor RX1 RX1 RX1 RX2 RX2 RX1 RX2 RX1 RX1 RX2
Intel