Seems I for­got to an­nounce that the linux_​base-​c6 is in the Ports Col­lec­tion now. Well, it is not a re­place­ment for the cur­rent de­fault linux base, the linuxu­lat­or in­fra­struc­ture ports are miss­ing and we need to check if the ker­nel sup­ports enough of 2.6.18 that noth­ing breaks.


To my know­ledge, nobody is work­ing on any­thing of this. Any­one is wel­come to have a look and provide patches.

Ment­or­ing again in the GSoC

Seems that I will act­ively ment­or again in this Google Sum­mer of Code (as op­posed to just re­view the sub­mis­sions from stu­dents and/​or act­ing as a fall-​back ment­or).

The pro­ject I will ment­or is the “Make op­tion­al ker­nel sub­sys­tems re­gister them­selves via sy­sctl”-one from the FreeBSD ideas page.

The stu­dent already got in­to con­tact with me and it looks like he is mo­tiv­ated (he is already sub­scribed to sev­er­al FreeBSD mailing­lists, which is not a re­quire­ment we have in our GSoC docs).

I merged a lot of ZFS patches to 7-​stable

Dur­ing the last weeks I iden­ti­fied 64 patches for ZFS which are in 8–stable but not in 7-​stable. For 56 of them I had a deep­er look and most of them are com­mited now to 7-​stable. The ones of those 56 which I did not com­mit are not ap­plic­able to 7-​stable (in­fra­struc­ture dif­fer­ences between 8 and 7).

Un­for­tu­nately this did not solve the sta­bil­ity prob­lems I have on a 7-​stable sys­tem.

I also com­mit­ted a diff re­duc­tion (between 8-​stable and 7-​stable) patch which also fixed some not so harm­less mis­merges (mem-​leak and ini­tial­iz­ing the same mu­tex twice at dif­fer­ent places). No idea yet if it helps in my case.

I also want to merge the new arc re­claim lo­gic from head to 8-​stable and 7-​stable. Maybe I can do this to­mor­row.

Cur­rently I run a test with a ker­nel where the shared locks for ZFS are switched to ex­clus­ive locks.

Some fixes for ZFS on 7-​stable (more test­ers wanted)

Due to the prob­lems with a 7–stable ma­chine, I had a look at some un­merged fixes for ZFS (58 changes not merged).

I back­por­ted some of those changes from 8-​stable to 7-​stable, I have this run­ning on one 7-​stable ma­chine. I would like to get some more feed­back for it (even an “it works for me” would be great). The main part of this change is that the FreeBSD taskqueue is used now in­stead of the opensol­ar­is one (and some oth­er changes which may im­prove the ZFS ex­per­i­ence).

It would also be nice if someone could have a look at the FIRST_​THREAD_​IN_​PROC part. Can there be more than one thread at this place (I do not think so) and I should use FOREACH_​THREAD_​IN_​PROC_​instead?

How to ap­ply:

  • cd /​usr/​src/​
  • fetch http://​www​.Leidinger​.net/FreeBSD/test/releng7_zfs_merge3.diff
  • fetch http://​www​.Leidinger​.net/FreeBSD/test/opensolaris_taskq.c
  • fetch http://​www​.Leidinger​.net/​F​r​e​e​B​S​D​/​t​e​s​t​/​t​a​s​k​q.h
  • mv taskq.h sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h
  • mv opensolaris_taskq.c sys/​cddl/​com­pat/opensolaris/kern/opensolaris_taskq.c
  • patch -p 0 –quiet <releng7_zfs_merge3.diff
  • ig­nore the 2 .rej files
  • rm -f sys/cddl/compat/opensolaris/sys/taskq_impl.h*
  • rm -f sys/cddl/compat/opensolaris/sys/taskq.h*
  • rm -f sys/cddl/contrib/opensolaris/uts/common/os/taskq.c*
  • re­build ker­nel

I do not list all of those 16 of 58 out­stand­ing patches which are covered here, a de­tailed list can be found on the stable and fs mailing­lists.

Some up­dates (kernel/​ports)

There was not much to tell in the last months. I was busy with mov­ing and the preg­nancy of my wife (ok, she was more busy with this than I was…).

So the re­cent up­dates are, that I took some time to com­mit some of my patches to SVN. Most of them are in my SVN user area in vari­ous branches. The in­ter­est­ing ones may be deskjail and linuxaio. The first one al­lows to run your desktop in a jail. The second one gives async I/​O for the linuxu­lat­or.

There’s also some oth­er stuff. Feel free to have a look.

It also seems that the we may see the Fe­dora 8 in­fra­struc­ture land­ing in the ports col­lec­tion “soon”. I have the im­pres­sion that Bor­is just waits for the com­plete un­freeze of the ports col­lec­tion. The last patch I’ve re­viewed looked very good. There are some loose ends, like switch­ing it on as the de­fault linux base for FreeBSD-cur­rent for ex­ample, but those are things which I prefer to do later than in the same com­mit. First let it be there for a while and let curi­ous users test it a little bit more. If everything is ok, we can switch the de­fault linux base to F8 in -cur­rent.

Pro­gress in the linuxu­lat­or

On of the ma­jor showstop­per bugs in the linux 2.6 emu­la­tion is that acror­ead does not work. Now we have patches (proof of concept by In­tron, re­fined patch by Kib) for it. I didn’t had time to test it yet (mind you, every­one else is not able to run acror­ead with 2.6, I’m able to run it at least with some files or no file at all), but I want to do an ex­tens­ive test (I know sev­er­al ways of killing it with 2.6).

If everything goes well and no oth­er showstop­per bug ap­pears, we may be able to re­quest more ex­tens­ive test­ing of the 2.6 emu­la­tion, at least on i386. First this should be done by ask­ing people to switch, and maybe after a week by switch­ing the de­fault emu­la­tion to 2.6 in -cur­rent (at least for a while).

This is spe­cially im­port­ant as the Fe­dora Leg­acy pro­ject an­nounced that they will aban­don sup­port for FC4. FC5+ is not able to run on a 2.4 ker­nel.

And while I’m at it: I sub­mit­ted the status re­port for the linuxu­lat­or. It con­tains some nice stat­ist­ic about the num­ber of fixed bugs (com­par­ing 6.2 and -cur­rent). No, I will not tell you in ad­vance, you have to wait some days un­til the re­port shows up. 😛

Linux mod­ules now us­able on amd64

Today I re­moved the LINUX stuff from GENERIC on amd64 (this syncs with i386). Now that kib@ com­mit­ted the ker­nel linker stuff the linux mod­ule is us­able on amd64 too. This al­lows for more easy testing/​patching on amd64 and also al­lows on-​demand-​loading like on i386.