From 9d2a62b39905ad4de51a7770fe3dc4af0ea8b0dc Mon Sep 17 00:00:00 2001 From: Robert Watson Date: Thu, 11 Nov 2004 22:21:42 +0000 Subject: [PATCH] Add an initial web page for the netperf project, talking a bit about the approaches that are being taken in the network performance work for 5.x/6.x. --- en/projects/netperf/Makefile | 17 +++ en/projects/netperf/index.sgml | 196 +++++++++++++++++++++++++++++++++ en/projects/netperf/style.css | 38 +++++++ 3 files changed, 251 insertions(+) create mode 100644 en/projects/netperf/Makefile create mode 100644 en/projects/netperf/index.sgml create mode 100644 en/projects/netperf/style.css diff --git a/en/projects/netperf/Makefile b/en/projects/netperf/Makefile new file mode 100644 index 0000000000..0f8c6a2171 --- /dev/null +++ b/en/projects/netperf/Makefile @@ -0,0 +1,17 @@ +# Summary for busdma project status +# +# $FreeBSD: www/en/projects/busdma/Makefile,v 1.1 2002/12/09 21:36:29 rwatson Exp $ + +MAINTAINER= rwatson + +.if exists(../Makefile.conf) +.include "../Makefile.conf" +.endif +.if exists(../Makefile.inc) +.include "../Makefile.inc" +.endif + +DOCS= index.sgml +DATA= style.css + +.include "${WEB_PREFIX}/share/mk/web.site.mk" diff --git a/en/projects/netperf/index.sgml b/en/projects/netperf/index.sgml new file mode 100644 index 0000000000..0a7f651cc6 --- /dev/null +++ b/en/projects/netperf/index.sgml @@ -0,0 +1,196 @@ + + + + + %includes; + +N/A"> +Done"> +In progress"> +Needs testing"> +New task"> +Unknown"> + + %developers; + +]> + + + &header; + +

Contents

+ + + +

Project Goal

+ +

The netperf project is working to enhance the performance of the + FreeBSD network stack. This work grew out of the + SMPng Project, which moved the FreeBSD kernel from + a "Giant Lock" to more fine-grained locking and multi-threading. SMPng + offered both performance improvement and degradation for the network + stack, improving parallelism and preemption, but substantially + increasing per-packet processing costs. The netperf project is + primarily focussed on further improving parallelism in network + processing, while reducing the SMP synchronization overhead. This in + turn will lead to higher processing throughput and lower processing + latency.

+ + +

Project Strategies

+

Robert Watson

+ +

The two primary focuses of this work are to increase parallelism + while decreasing overhead. Several activities are being performed that + will work towards these goals:

+ + + + +

Project Tasks

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Task Responsible Last updated Status Notes
Mbuf queue library &a.rwatson; 20041106 &status.wip; In order to facilitate passing off queues of packets between + network stack components, create an mbuf queue primitive, struct + mbufqueue. The initial implementation is complete, and the + primitive is now being applied in several sample cases to determine + whether it offers the desired semantics and benefits. The + implementation can be found in the rwatson_dispatch Perforce + branch.
Employ queued dispatch in interface send API &a.rwatson; 20041106 &status.wip; An experimental if_start_mbufqueue() interface to struct ifnet + has been added, which passes an mbuf queue to the device driver for + processing, avoiding redundant synchronization against the + interface queue, even in the event that additional queueing is + required. This has not yet been benchmarked.
Employ queued dispatch in the interface receive API &a.rwatson; 20041106 &status.new; Similar to if_start_mbufqueue, allow input of a queue of mbufs + from the device driver into the lowest protocol layers, such as + ether_input_mbufqueue.
+ + +

Links

+ +

Some useful links relating to the netperf work:

+ + + + &footer; + + diff --git a/en/projects/netperf/style.css b/en/projects/netperf/style.css new file mode 100644 index 0000000000..beecc6f17a --- /dev/null +++ b/en/projects/netperf/style.css @@ -0,0 +1,38 @@ +BODY { +} + +BODY TD { + font-size: 13px; +} + +BODY SMALL { + width: 615px; + font-size: 11px; +} + +.heading { + font-size: 15px; + background-color: #cbd2ec; +} + +.section { + font-size: 15px; + font-weight: bold; + background-color: #e7e9f7; +} + +.notes { + font-size: 13px; + font-weight: normal; +} + +.main { + width: 615px; + height: auto; + text-align: justify; +} + +.list { + width: 550px; + height: auto; +}