Published on
March 24, 2009 in
FreeBSD.
Two days ago, I have checked in probably most requested feature of last few years. Ports framework now systematically supports building ports on multiple processing cores. It is achieved by passing -jX flag to make(1) running on vendor code. Of course not all ports handle this well, experimental run on pointyhat with this flag globally enabled turned up shy of 400 failures. Because of that, the feature was designed as a whitelist. Individual ports need to be enabled, and indeed, fellow developers took on and already started adding required declarations to popular ports like Firefox and others.
If you are FreeBSD ports user, you don’t need to do anything to enable the new feature. Whitelisted ports will automatically make use of all processors available in your computer. If you want, for some reasons, to disable this feature, put DISABLE_MAKE_JOBS=yes to your /etc/make.conf. By default, the level of parallelization will be equal to a number of processing cores in your machine. If you want to override this number, use for example MAKE_JOBS_NUMBER=6, again in /etc/make.conf. And if you are extra brave, or you want to check out all the yet unmarked ports, if they will build, you can define FORCE_MAKE_JOBS=yes in /etc/make.conf.
If you are FreeBSD port maintainer, nothing changes for you, if you don’t want. If you want to enable the use of multiple cores in your port, add MAKE_JOBS_SAFE=yes to a block somewhere below dependency declarations. If you know your port does not handle -jX well, and want to disable it from using -jX even when user forces this feature, use MAKE_JOBS_UNSAFE=yes. And that’s all to it.
Haven’t posted about progress with lyear2 filtering for a while. One notable improvement is addition of ethernet address masks to dummynet.
Just configure a pipe. New masks available: src-ether and dst-ether (and a shortcut for specifying both of them: ether)
# ipfw pipe 1 config bw 1Mb mask ether
And use it:
# ipfw add 1100 pipe 1 src-ether 00:11:11:11:11:11 dst-ether 00:22:22:22:22:22 out via bridge0 layer2
# ipfw add 1200 pipe 1 dst-ether 00:11:11:11:11:11 src-ether 00:22:22:22:22:22 out via bridge0 layer2
# ipfw pipe show
00001: 1.000 Mbit/s 0 ms 50 sl. 2 queues (64 buckets) droptail
mask: ff:ff:ff:ff:ff:ff -> ff:ff:ff:ff:ff:ff tag: 0x0000
BKT _Source Ether Addr_ _Dest. Ether Addr__ Tag Tot_pkt/bytes Pkt/Byte Drp
40 00:11:11:11:11:11 00:22:22:22:22:22 0 2 196 0 0 0
43 00:22:22:22:22:22 00:11:11:11:11:11 0 2 196 0 0 0
Besides, masking packet by tag is also there:
# ipfw add 200 pipe 1 ip from any to any tagged 1-1000 via bridge0 layer2
As several tags per packet supported, it is necessary to specify desired tag range, tag, or any tag:
# ipfw add 200 pipe 1 ip from any to any tagged any via bridge0 layer2
Patches for current and 7-stable available:
l2filter-current-2009-03-24
l2filter-stable-2009-03-24 (updated link)
I just presented a paper at AsiaBSDCon 2009 on the FreeBSD/mips status. There's a lot going on with the FreeBSD/mips project these days. You can find out most of the details from my paper, which is available in
letter or
a4 format.
In summary, there's a number of new ports underway. There's Cavium Octeon, Atheros 7xxx/9xxxx, RMI Au1xxxx and a couple others.
AsiaBSDCon is always fun. There's many Japanese developers that don't get a chance to go to other conferences who I only get to see in Japan. This conference allows me to see them, as well as talk to them to see what they are using BSD in general, and FreeBSD specifically. The Japanese have often lead the way in many areas, and seeing their current projects is very interesting.
Also, I could cut and paste large parts of my paper here, but I'm not sure of the value of doing that. Can people that have strong opinions leave feedback on this issue.
Some years ago I’ve made a little
web application which allowed one
to browse FreeBSD
ports collection
by tags, à la delicious.
The tags were not created by users but were
instead generated from a couple of fields
taken from every
port’s Makefile,
so it was not exactly a “social” software.
There was some limited amount
of discussion on FreeBSD mailing lists, and a publicly
accessible readonly SVN repository
was created by my friend Erwin,
but the overall interest was rather low.
Over time I moved on and basically stopped
working on the project,
but recently I had an idea - not exactly to
re-surrect it, but to make it more
easy for people who are interested to
contribute.
Enter port-tags at github.
Github is a tool
to host git repositories
of your open-source projects.
Anybody can easily clone your repository,
fork it completely, or submit their
changes back to you.
I only started using it today,
so I cannot say much about its features
and how convenient they are,
but from what I’ve heard,
it is very very nice.
So, if you are interested,
and have got round tuits to spare,
please hack on port-tags - maybe
some good will eventually come out of it.
It took me a while, but I eventually updated my About Me page. =)
P.S. I have at least 5 more ideas for blog posts but I’m lacking the brilliant idea to make them interesting.
Published on
March 9, 2009 in
FreeBSD.
I haven’t made too much noise in these days because I’m quite busy but this doesn’t mean that I’ve completely abandoned FreeBSD. A summary of my recent progress:
- BSD grep: Finally, it seems working and compatible with GNU grep. A portbuild test is necessary to make sure nothing breaks with this and if the test performs well, we don’t have any barriers to have an own grep implementation, which is independent from GNU, smaller and cleaner.
- NLS in libc: NLS support was disabled in libc a long time ago due to some issues with the catalog handling code. Now they are resolved but NLS was kept off. I’ve collected some catalogs, made a patch to turn it on and made some tests. It seems that I can commit this stuff soon.
- BSD sort: I’ve started a sort implementation from scratch. It performs well and there are few missing features so I expect this to be ready soon. Not so soon as the former two items, but quite soon. Stay tuned!
Interview with Andrew Doran from the NetBSD Project. We talk about the upcoming 5.0 release.
File Info: 22Min, 10MB.
Ogg Link:
http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk171.ogg
Greg Lewis has
released the ninth patchset (patchset 9) in the
JDK™ 1.5 series. See the JDK 1.5.x page for more
details.