1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE report PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for Status Report//EN"
"http://www.FreeBSD.org/XML/www/share/sgml/statusreport.dtd">
<!-- $FreeBSD$ -->
<report>
<date>
<month>January-February</month>
<year>2004</year>
</date>
<section>
<title>Introduction:</title>
<p>2004 started with another exciting two months for the project.
FreeBSD 5.2 was released in early January and then quickly followed
in February with the 5.2.1 bug-fix release. Looking forward, we
are expecting a late-April release date for FreeBSD 4.10, and
mid-summer date for FreeBSD 5.3. And don't forget to support the
FreeBSD vendors and developers by buying a copy of the latest CD
or DVD sets.</p>
<p>Thanks,</p>
<p>Scott Long</p>
</section>
<project>
<title>Disk and device I/O</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<body>
<p>In the overall area of disk and device I/O, a significant
milestone was reached with the implementation of proper
reference counting on dev_t. We are now able to properly
allocate and free dev_t. Cloning device drivers also had
the job made easier for them with the addition of the unit
number management routines.</p>
<p>It is not quite decided which will be the next step in
the quest for a truly SMPng I/O subsystem, but a leading
candidate is to implement the device-access vnode bypass
to get more concurrency in the system: Instead of taking
the tour through the vnodes for each i/o operation on a
device we will go directly from the file descriptor layer to
DEVFS/SPECFS. In addition to Giant-less disk I/O,
this should enable us to pull the entire tty subsystem
and the PTY driver out from under Giant and we expect that
to improve the "snappiness" of the system measurably.</p>
</body>
</project>
<project>
<title>The FreeBSD Dutch Documentation Project.</title>
<contact>
<person>
<name>
<given>Remko</given>
<common>Lodder</common>
</name>
<email>remko@elvandar.org</email>
</person>
</contact>
<body>
<p>The Dutch Documentation Project is a ongoing project in
translating the handbook and other documentation to the dutch
language. Currently there is 1 active person (me) translating the
documentation. I am currently working on the handbook/basics
section. But i can use some more hands, please drop me an email if
you wish to help out so that the dutch translation will speed up
and be ready in some time. Contact remko@elvandar.org for
information.</p>
</body>
</project>
<project>
<title>Weekly cvs-src summaries</title>
<contact>
<person>
<name>
<given>Mark</given>
<common>Johnston</common>
</name>
<email>mark@xl0.org</email>
</person>
</contact>
<links>
<url href="http://excel.xl0.org/FreeBSD/" />
<url href="http://mocart.pinco.pl/FreeBSD/">Polish translations</url>
</links>
<body>
<p>I have been producing weekly summaries of commits and the
surrounding discussions as reported on the cvs-src mailing list.
These summaries are posted to -current on Sunday evenings and
archived on the Web. The reception has been overwhelmingly good.
As of the end of February, Polish translations are being produced
by Lukasz Dudek and Szymon Roczniak; they are also
planning to translate the older summaries.</p>
</body>
</project>
<project>
<title>libarchive/bsdtar</title>
<contact>
<person>
<name>
<given>Tim</given>
<common>Kientzle</common>
</name>
<email>kientzle@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://people.FreeBSD.org/~kientzle/"/>
</links>
<body>
<p>libarchive, with complete documentation, has been committed to
-CURRENT. bsdtar should follow soon. For a few months, gtar
and bsdtar will both be available in the base system. Once
bsdtar is in the tree, I hope to resume work on libpkg and my
pkg_add rewrite.</p>
<p>Note that bsdtar is not an exact replacement for gtar: it does
some things better (reads/writes standard formats, archive ACLs
and file flags, detects format and compression automatically),
some things worse (does not handle multi-volume archives or
sparse files) and a few things just different (writes POSIX-format
archives by default, not GNU-format). The command lines are
sufficiently similar that most users should have no problems
with the transition. However, people who rely on peculiar
options or capabilities of gtar may have to look to ports.</p>
</body>
</project>
<project>
<title>Network interface naming changes</title>
<contact>
<person>
<name>
<given>Brooks</given>
<common>Davis</common>
</name>
<email>brooks@FreeBSD.org</email>
</person>
</contact>
<links>
</links>
<body>
<p>The first actual feature related to the if_xname conversion was
committed in early February. Network interfaces can now be
renamed with "ifconfig <if> name <newname>".</p>
<p>Work is slowly progressing on a new network interface cloning API
to enable interesting cloners like auto-configurating vlans.
This work is taking place in the perforce repository under:
//depot/user/brooks/xname/...</p>
</body>
</project>
<project>
<title>PowerPC Port</title>
<contact>
<person>
<name>
<given>Peter</given>
<common>Grehan</common>
</name>
<email>grehan@FreeBSD.org</email>
</person>
</contact>
<body>
<p>After a slow time at the end of last year due to a disk crash,
the project is moving along rapidly. The loader is fully
functional with Forth support. Syscons has been integrated.
New Powerbook models are supported. Work is starting on a
G5 port.</p>
<p>There's still lots to do, so as usual volunteers are most
welcome.</p>
</body>
</project>
<project>
<title>The FreeBSD Simplified Chinese Project</title>
<contact>
<person>
<name>
<given>Dong</given>
<common>LI</common>
</name>
<email>ld@FreeBSD.org.cn</email>
</person>
<person>
<name>
<given>Xin</given>
<common>LI</common>
</name>
<email>delphij@frontfree.net</email>
</person>
</contact>
<links>
<url href="http://www.FreeBSD.org.cn">The FreeBSD Simplified
Chinese Project (In Simplified Chinese)</url>
<url href="http://www.FreeBSD.org.cn/snap/zh_CN/">Translated
Website Snapshot</url>
<url href="http://www.FreeBSD.org.cn/snap/doc/zh_CN.GB2312/books/handbook/">Translated Handbook Snapshot</url>
</links>
<body>
<p>The project is a joint effort of volunteers, which focus in
the internationalization and localization of the FreeBSD
Operating System and applications running on FreeBSD. All of the
work resulted in this project will be contributed back to the
FreeBSD project.</p>
<p>Thanks to many volunteers' help, by this time of writing, we
have finished more than 60% of the translation of the FreeBSD
Handbook. We plan to submit a preliminary translation of the
FreeBSD website as well as the FreeBSD Handbook when most part of
them were finished, which is expected to happen in a couple of
months. The snapshot of the documentation translation effort
could be accessed through the URL listed above.</p>
<p>The project also supported individual efforts on porting
applications (especially software that supports Simplified
and/or Traditional Chinese) to FreeBSD. We are also doing some
research on making FreeBSD kernel and base system more
i18n-aware.</p>
</body>
</project>
<project>
<title>Verify source reachability option for ipfw2</title>
<contact>
<person>
<name>
<given>Andre</given>
<common>Oppermann</common>
</name>
<email>andre@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://www.nrg4u.com/freebsd/ipfw_versrcreach.diff"/>
</links>
<body>
<p>The verify source reachability option for ipfw2 checks if the
source IP address of a packet entering the machine is reachable
at all. Thus if we can't send a packet back because we don't
have a route back we don't have to forward it because two way
communication isn't possible anyway. It is more than likely
that such a packet is spoofed. This option is almost the same as
what is known on Cisco IOS as "ip verify unicast source
reachable-via [any|ifn]". Using this option only makes sense
when you don't have a default route which naturally always
matches. So this is useful for machines acting as routers with
a default-free view of the entire Internet as common when running
a BGP daemon (Zebra/Quagga or OpenBSD bgpd).</p>
<p>One useful way of enabling it globally on a router looks like
this: ipfw add xxxx deny ip from any to any not versrcreach or for
an individual interface only: ipfw add xxxx deny ip from any to
any not versrcreach recv fxp0</p>
</body>
</project>
<project>
<title>Move ARP out of routing table</title>
<contact>
<person>
<name>
<given>Andre</given>
<common>Oppermann</common>
</name>
<email>andre@FreeBSD.org</email>
</person>
</contact>
<body>
<p>The ARP IP address to MAC address mapping does not belong into
the routing table (FIB) as it is currently done. This will move
it to its own hash based structure which will be instantiated
per each 802.1 broadcast domain. With this change it is possible
to have more than one interface in the same IP subnet and layer 2
broadcast domain. The ARP handling and the routing table will be
quite a bit simplified afterwards. As an additional benefit full
MAC address based accosting will be provided. Work on this
project is already in progress.</p>
</body>
</project>
<project>
<title>Automatic sizing of TCP send buffers</title>
<contact>
<person>
<name>
<given>Andre</given>
<common>Oppermann</common>
</name>
<email>andre@FreeBSD.org</email>
</person>
</contact>
<body>
<p>The current TCP send and receive buffers are static and set to a
conservative value to preserve kernel memory. This is sub-optimal
for connections with a high bandwidth*delay product because the
size of the TCP send buffer determines how big the send window
can get. For high bandwidth trans-continental links this seriously
limits the maximum transfer speed per TCP connection. For example
a 170ms RTT and a 32kB send buffer limit the speed to approximately
1.5Mbit per second even thought you might have a 10Mbit pipe.</p>
<p>This project makes the TCP send buffer to automatically adapt to
the optimal buffer size for maximal link usage. In the case
above this would be a buffer of approximately 220kB. The main
challenge is to have a stable and reliable measurement of the link
parameters and manage the kernel memory properly and in a fair way.
We don't want to have a few connections to monopolize all available
socket buffer space and many edge cases have to be considered. The
first implementation will be tuned conservatively but even that
will provide significantly better performance than the static
buffers currently. Work on this project is already in
progress.</p>
</body>
</project>
<project>
<title>Testbed for testing and qualification of TCP performance</title>
<contact>
<person>
<name>
<given>Andre</given>
<common>Oppermann</common>
</name>
<email>andre@FreeBSD.org</email>
</person>
</contact>
<body>
<p>The TCP performance test and qualification testbed is an automated
environment that simulates various common and uncommon end-to-end
network and link characteristics such as delay, bandwidth
limitations, congestion, packet drops, packet corruption and out
of order arrival. The testbed automatically steps through all
link types and tests various TCP optimizations and parameter
adjustments. In the end all data is graphically arranged and
compared against standard behaviour and each other to judge the
positive or negative effects of the modifications. Work on this
project has just started and is based on FreeBSDs dummynet.</p>
</body>
</project>
<project>
<title>FreeBSD ports monitoring system</title>
<contact>
<person>
<name>
<given>Mark</given>
<common>Linimon</common>
</name>
<email>linimon_at_lonesome_dot_com</email>
</person>
</contact>
<links>
<url href="http://portsmon.firepipe.net/index.html">
FreeBSD ports monitoring system</url>
</links>
<body>
<p>Thanks to the loan of a box by Will Andrews, the system has
been moved into production. The previous installation
at lonesome.com now refers you to the new system. As part of
the installation, a preliminary
<a href="http://portsmon.firepipe.net/faq.html">FAQ</a> was
added.</p>
<p>The database is updated once per hour.</p>
<p>New reports available include ones about ports marked DEPRECATED,
since that function has now been incorporated into bsd.port.mk.
(The author hopes that this will allow the port deprecation process
to be much more visible to the general FreeBSD user community.) In
addition, a report for ports marked FORBIDDEN was added (the code
was essentially the same).</p>
<p>The next topic of interest is to try to identify ports which are
slave ports because the status of these ports is not currently
being updated automatically. This problem also affects
FreshPorts. PR ports/63683 is an attempt to address this problem.
Also, preliminary work has been done on creating some graphs and
charts for various statistics, and in creating a tool to browse
port dependencies for the entire ports tree.</p>
<p>Some general observations about the trends in ports PRs can be
made:
<ul>
<li>In the past 6 months, the amount of time to get ports PRs
committed has dropped dramatically. (This is especially
true of PRs for new ports.)</li>
<li>The queue of PRs for existing ports that are unmaintained
has similarly been trimmed. Both of these two items are due
in large part to a few very active committers (how do they
ever get their "real" work done?) Thanks, guys, you know who
you are.</li>
<li>There is still a fairly high number of PRs (~400/~750) which
apply to existing ports, and have been assigned to a FreeBSD
committer. This represents around 370 individual ports. We
seem to have a much harder time getting these numbers to go
down; basically, we just hold our own most weeks. This is
somewhat disappointing.</li>
<li>The number of ports marked BROKEN has jumped dramatically,
currently standing at over 250 (for i386-current). This
represents less a sudden problem as it does Kris' effort to
bring existing brokenness to people's attention -- thus, a
much larger percentage of ports with build errors are now
labeled as BROKEN.</li>
<li>Approximately two-thirds of the port build errors are still
due to compilation problems, primarily from the gcc3.3 import.
Another 10% fail to install correctly. The reasons for the
others are more varied.</li>
</ul>
</p>
</body>
</project>
<project>
<title>FreeSBIE</title>
<contact>
<person>
<name>
<given>FreeSBIE</given>
<common>Staff</common>
</name>
<email>staff@FreeSBIE.org</email>
</person>
</contact>
<links>
<url href="http://www.freesbie.org">FreeSBIE Home</url>
<url href="mailto:freesbie@gufi.org">FreeSBIE Mailing
List</url>
<url href="http://www.freesbie.org/?section=mirror-en">FreeSBIE
Mirror List</url>
</links>
<body>
<p>The FreeSBIE Project aims to develop a set of scripts that allow
anyone to create their own FreeBSD Bootable Cdrom, with their own
set of installed packages. The Project releases an ISO builded
with FreeSBIE scripts, to show what they can do. On Sunday 29
February 2004, FreeSBIE 1.0 was released and it had a great
success, as there were post on Slashdot.org, OSnews, DaemonNews
and BSDForums. Thanks to the huge amount of feedback they got,
FreeSBIE Developers are now developing new features such as
support for archs different from i386. Website redesign is on the
way too.</p>
</body>
</project>
<project>
<title>kgi4BSD</title>
<contact>
<person>
<name>
<given>Nicholas</given>
<common>Souchu</common>
</name>
<email>nsouch@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://www.FreeBSD.org/~nsouch/kgi4BSD"> Project URL</url>
</links>
<body>
<p>Move to Perforce is done. I spent some time on building a
common compilation tree with Linux: until now drivers were
build in a FreeBSD makefile tree, not compatible with Linux.</p>
<p>The next priorities are ANSI support and keymaps in the
KGC Kernel Graphic Console system.</p>
</body>
</project>
<project>
<title>FreeBSD/ia64</title>
<contact>
<person>
<name>
<given>Marcel</given>
<common>Moolenaar</common>
</name>
<email>marcel@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://www.FreeBSD.org/platforms/ia64/index.html">
Home page.</url>
</links>
<body>
<p>Work on the PMAP overhaul has been put into gear. A lot of issues
will be addressed, including support for sparse physical memory
and of course SMP. Performance will be addressed to the extend
possible, but functionality has priority. The redesign will lay
the foundation for NUMA support where possible. An example of this
is limiting TLB shootdowns to processors that actually have or had
TLBs belonging to the PMAP loaded. Of course, without NUMA
hardware the implementation of NUMA support is quite limited.</p>
</body>
</project>
<project>
<title>FreeBSD Package Grid</title>
<contact>
<person>
<name>
<given>Kris</given>
<common>Kennaway</common>
</name>
<email>kris@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Distributed package builds are currently done using a set of
home-grown shell scripts for managing, scheduling and
dispatching of package builds on the client machines. This has
been sufficient for our needs in the past, but has a number of
significant shortcomings that limit future growth. I am
rewriting the package build scripts to work on top of Sun
GridEngine (ports/sysutils/sge), as a client application of a
"FreeBSD package grid". Some of the design goals for the new
system are:</p>
<ul>
<li>Better robustness against machine failure, and more efficient
scheduling of build jobs</li>
<li>Support for remote build machines, to make better use of machine
resources and clusters that are not on the same LAN as the
build master</li>
<li>Ability for other committers to submit port build jobs to the
system, for testing of changes, new ports, etc.</li>
</ul>
</body>
</project>
<project>
<title>vinum + GEOM</title>
<contact>
<person>
<name>
<given>Lukas</given>
<common>Ertl</common>
</name>
<email>le@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://mailbox.univie.ac.at/~le/geom_vinum.tar.gz" />
</links>
<body>
<p>The "geomification" of vinum has made some progress. I now have
all basic setups working (concatenated plexes, striped plexes,
RAID5 plexes, and RAID1), but I still have to implement correct
error handling and status change handling.</p>
<p>Still missing is a userland tool, so currently you still have to
use "old-style" vinum to configure your setup.</p>
</body>
</project>
<project>
<title>NanoBSD</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<body>
<p>NanoBSD, src/tools/tools/nanobsd, is a tool for stuffing FreeBSD
onto small disk media (like CompactFlash) for embedded
applications. The disk image is built with three partitions, two
for software images and one for configuration files. Having two
software partitions means that new software can be uploaded to the
non-active partition while running off the active partition.</p>
<p> The first really public version has been committed and many
suggestions and offers of patches have started pouring in.</p>
</body>
</project>
<project>
<title>Porting OpenBSD's pf</title>
<contact>
<person>
<name>
<given>Max</given>
<common>Laier</common>
</name>
<email>max@love2party.net</email>
</person>
<person>
<name>
<given>Pyun</given>
<common>YongHyeon</common>
</name>
<email>yongari@kt-is.co.kr</email>
</person>
</contact>
<links>
<url href="http://pf4freebsd.love2party.net/" />
<url href="http://www.benzedrine.cx/pf.html">PF homepage</url>
<url href="http://openbsd.org/faq/pf/index.html">PF FAQ</url>
<url href="http://www.rofug.ro/projects/freebsd-altq/">ALTQ</url>
</links>
<body>
<p>The sources were imported from OpenBSD 3.4R and patched with
diffs obtained from the port. Since March the 8th it is linked
to the build and install. There is some more work to be done in
order make pf a home inside the tree, but the biggest hunk of
work was lifted during the past two month.</p>
<p>OpenBSD 3.5 is scheduled for early May, so we might see an update
before 5.3R. Work towards integration of the - often requested
- ALTQ framework is in progress also, though it is not yet clear
how well it goes along with the ongoing work towards a giant free
net stack.</p>
</body>
</project>
<project>
<title>FreeBSD/arm Status Report</title>
<contact>
<person>
<name>
<given>Olivier</given>
<common>Houchard</common>
</name>
<email>cognet@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Development goes reasonably fast, right now it boots single user.
It is still very simics-centric, and it deserves a huge cleanup
and a few bug fixes, but there's already a decent amount of code
to work with, mostly taken from NetBSD. I now plan to work on real
hardware support (as soon as I can get some), to get the missing
userland bits (mainly rtld and the pthread libs) so that I can
build a full world.</p>
</body>
</project>
<project>
<title>SGI XFS port for FreeBSD</title>
<contact>
<person>
<name>
<given>Alexander</given>
<common>Kabaev</common>
</name>
<email>kan@FreeBSD.org</email>
</person>
<person>
<name>
<given>Russell</given>
<common>Cattelan</common>
</name>
<email>cattelan@thebarn.com</email>
</person>
</contact>
<body>
<p>Not much has changed since last report was submitted. The
read-only access XFS volumes is quite stable now. The work is
underway to rewrite xfs_buf layer to minimize local changes
intrusiveness. Initial attempt to make XFS code to compile and
run on amd64 is in progress too.</p>
<p>We really need a care-taker for our userland tools.</p>
</body>
</project>
<project>
<title>Compile FreeBSD with Intels C compiler (icc)</title>
<contact>
<person>
<name>
<given>Alexander</given>
<common>Leidinger</common>
</name>
<email>netchild@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://www.Leidinger.net/FreeBSD/">Some patches.</url>
</links>
<body>
<p>If nothing bad happened, the icc patches got committed around
the date of the deadline for submissions of this report. Please
search the archives of -current and/or cvs-all for more
information.</p>
<p>The next steps in this project are to
<ul>
<li>fix the kernel to also run without problems when compiled
with icc v8</li>
<li>fix the kernel if some problems surface after more people
give it a try</li>
<li>get some ports to compile with icc</li>
</ul>
</p>
</body>
</project>
<project>
<title>
Bluetooth stack for FreeBSD (Netgraph implementation)
</title>
<contact>
<person>
<name>
<given>Maksim</given>
<common>Yevmenkin</common>
</name>
<email>m_evmenkin@yahoo.com</email>
</person>
</contact>
<body>
<p>Not much to report. Bluetooth Service Discovery Procotol daemon
sdpd was integrated with existing Bluetooth utilities. From now
on users should not use GNU sdpd (Linux BlueZ port).</p>
<p>Bluetooth HID profile implementation is almost complete. Thanks
to Matt Peterson < matt at peterson dot org > for giving me
Bluetooth keyboard and mouse for development.</p>
</body>
</project>
<project>
<title>FreeBSD GNOME Project Report</title>
<contact>
<person>
<name>
<given>FreeBSD</given>
<common>GNOME Team</common>
</name>
<email>gnome@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://www.FreeBSD.org/gnome/">FreeBSD GNOME Project
Site.</url>
</links>
<body>
<p>It has been a year since our last status report, but we
haven't slowed down. Since the last report, Alexander
Nedotsukov (bland) and Pav Lucistnik (pav) have joined the
FreeBSD GNOME team. GNOME 2.4 was released back in September
2003, followed by 2.4.1 and 2.4.2. We are actively working on
getting GNOME 2.6.0 out the door at the end of March. GNOME 2.6
Beta releases can be obtained via the project URL above.</p>
<p>To help make GNOME 2.6.0 our best release to date, we have
created a script to automate the upgrade from GNOME 2.4. We
also have a new GNOME
<a href="http://www.marcuscom.com/tinderbox/">package build
server</a>
that builds and serves i386 packages for all supported FreeBSD
releases. We plan on having the GNOME 2.6.0 packages available
the moment 2.6.0 hits the ports tree.</p>
<p>Included in the release of GNOME 2.6 is GTK+ 2.4, the next
installment in the GTK+ 2 series. Because GTK+ 2 has become
very stable over the past few years, the FreeBSD GNOME Team is
pushing for GTK+ 2 support to be included by default in all
applications that support it. This has already been done with
Mozilla, Firefox, and Thunderbird. A complete GNOME Desktop and
application environment can already be built using only GTK+ 2.
The ultimate goal is to phase GTK+ 1 out of the ports tree.</p>
</body>
</project>
<project>
<title>Network Stack Locking</title>
<contact>
<person>
<name>
<given>Sam</given>
<common>Leffler</common>
</name>
<email>sam@FreeBSD.org</email>
</person>
<person>
<name>
<given>Robert</given>
<common>Watson</common>
</name>
<email>rwatson@FreeBSD.org</email>
</person>
</contact>
<links>
</links>
<body>
<p>This project is aimed at converting the FreeBSD network stack from
running under the single Giant kernel lock to permitting it to
run in a fully parallel manner on multiple CPUs (i.e., a fully
threaded network stack). This will improve performance/latency
through reentrancy and preemption on single-processor machines,
and also on multi-processor machines by permitting real
parallelism in the processing of network traffic. As of FreeBSD
5.2, it was possible to run low level network functions, as well
as the IP filtering and forwarding plane, without the Giant lock,
as well as "process to completion" in the interrupt handler.</p>
<p>Work continues to improve the maturity and completeness of
the locking (and performance) of the network stack for 5.3. The
network stack locking development branch has been updated to the
latest CVS HEAD, tracking a variety of FreeBSD changes, including
tracking and driving changes in the interface and device cloning
APIs, push-down and fixes to locking in the Berkeley Packet
Filter, consistency improvements in allocation flags for network
objects, diagnosis of excessive acquisition of Giant in various
system callouts and timeouts, removal of Giant from several
system callouts, "const"-ification of a number of global
variables in the network stack (IPv4, IPv6, elsewhere) as part of
ananalysis of locking requirements, fine-grain locking of a
number of pseudo-interfaces (disc, loopback, faith, stf, gif, tap,
tun), IP encapsulation and tunneling, initial review and locking
of parts of PPP and SLIP, experimentation with PCB assertions on
IPv6, additional socket locking assertions, graphing of the FreeBSD
sockets layer to support locking analysis, merging of theMT_TAG to
m_tag conversion to improve the ability to queue packets, moving
of the debug.mpsafenet tunable to controlling Giant over the
forwarding plane to Giant over the entire stack("dual-mode" to
support non-MPSAFE protocols), adaption of existing network lock
assertions to also assert Giant when running non-MPSAFE, analysis
of high cost of select() locking, improved locking and
synchronization annotations, TCP callouts run MPSAFE, logtimeout()
runs MPSAFE, uma_timeout() runs MPSAFE, callout sampling
instrumentation, loadav() runs MPSAFE, AppleTalk locking begun:
AARP locked down and DDP analysis, rawcb list locked, locking
analysis of mrouter and IP ID code, IGMP locked, IPv6 analysis
begun, IPX/SPX analysis begun, PPP timeouts converted to callouts,
Netgraph analysis begun. Many of these changes have not yet been
merged to the main FreeBSDtree, but this is a work in progress.</p>
<p>In related work on Pipe IPC (not quite network stack locking),
substantial time was invested in diagnosing an increase in the
cost of pipe allocation since FreeBSD 4.x, as well as coalescing
the several allocations needed to create a pipe, as well as moving
to slab allocation so as to amortize the cost of pipe
initialization. Future work here will include caching the VM
structures supporting pipe buffers.</p>
<p>Recent contributors include Robert Watson, Sam Leffler, MaxLaier,
Maurycy Pawlowski-Wieronski, Brooks Davis, and many others who are
omitted here only by accident.</p>
</body>
</project>
</report>
|