Saturday, October 15, 2011

SR-IOV Interrupt handling on Linux KVM

Click to expand image.

Thursday, June 16, 2011

GSoC: Multiqueue BPF support and other BPF features

I became a Ph.D course student from this April, so I decided to apply Google Summer of Code 2011, and it was accepted.

It's FreeBSD project, working on network stack improvement.

Short description:
The project goal is to support multiqueue network interface on BPF, and provide interfaces for multithreaded packet processing using BPF. BPF is raw interface of network devices, which allows to receive / send Data Link Layer frame directly. Modern high performance NICs have multiple receive/send queues and RSS feature, this allows to process packet concurrently on multiple processors. Main purpose of the project is to support these hardware and get benefit of parallelism.



OpenBSD/OCTEON status

I just merged Ethernet driver, but there're still missing drivers remain:

CPU: Only Single core worked, tested on CN5020
RAM: Can't access 256MB-512MB region
UART: Worked
CF: Original driver required, slow & eat CPU power, maybe dependent to a board
Ethernet: Worked
USB: Not yet
PCI: Not yet
SATA(via PCI): Not yet
Crypt: Not yet
Timer: Not yet

Right now we're only testing on Portwell CAM-0100, but we may try more hardware later. Possibly IIJ SEIL/X1.

Wednesday, January 12, 2011

Packet receiving flow on NetBSD/i386

OpenBSD forked from NetBSD long years ago, but the code are still similar.
I even could reuse the OpenBSD chart for this.

I checked lock granularity and how parallelized, unfortunately it doesn't allow multiple cpus process hw interrupt or software interrupt in parallel.
It does allow multiple cpus entering system call on same time, but only one processor can run network software interrupt because it locks whole network subsystem.
And hw interrupt takes big kernel lock.

Sunday, January 9, 2011

Thursday, January 6, 2011

Wednesday, January 5, 2011

Packet receiving flow on OpenBSD/i386

Just drew the flow of packet receiving sequence, to check existence of shared data and giant locks.