It seems I have a bit of free time now to take care about some FreeBSD related things.
As part of this I already committed the UFS/FFS related FEATURE macros which where developed by kibab@ during the Google Summer of Code 2010. The network/ALTQ related FEATURE macros are in the hands of bz@, he already reviewed them and wants to commit them (with some changes) as part of his improvements of parts of the network related code.
The GEOM related FEATURE macros I just send some minutes ago to geom@ for review. All the rest went out to hackers@ for review. The rest in this case is related to AUDIT, CAM, IPC, KTR, MAC, NFS, NTP, PMC, SYSV and a few other things.
If everything is committed, it should look a bit like this if queried from userland (not all features are shown, those are just the ones which are enabled in the kernel in one of my machines):
Due to the problems with a 7-stable machine, I had a look at some unmerged fixes for ZFS (58 changes not merged).
I backported some of those changes from 8‑stable to 7‑stable, I have this running on one 7‑stable machine. I would like to get some more feedback 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 instead of the opensolaris one (and some other changes which may improve the ZFS experience).
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 apply:
- 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/FreeBSD/test/taskq.h
- mv taskq.h sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h
- mv opensolaris_taskq.c sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c
- patch ‑p 0 –quiet <releng7_zfs_merge3.diff
- ignore 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*
- rebuild kernel
I do not list all of those 16 of 58 outstanding patches which are covered here, a detailed list can be found on the stable and fs mailinglists.
I had a look at some USB PRs and wrote a list of those with patches to Warner (as he is working on USB stuff currently). I also categorized them (easy, not easy, maybe already fixed, …). The easy ones he handled already, for the rest I don’t know his current plans.
Regarding linuxulator stuff I’m working on a MFC patch (no TLS, no futexes). As I don’t have a -stable box I need some help testing it before I can commit it. I only compile tested this on ‑current with the new gcc 4.2. What I need is:
- testing on i386, amd64 (if I forgot something, it may panic your system)
- “make universe” test (you have to grep all the logs for “Error 1” and investigate the error if there’s one)
- LTP test run, see the wiki for more (best would be a diff of the logs in the result directory of no-patch/patch runs)
- normal linux application use-tests
What the patch provides is:
- mmap fixes
- fix memleaks
- add mprotect/iopl/lstat/ftruncate/statfs64/timer_*/mq_*
- more errno value mapping
- don’t limit number of syscalls to 255
- allow to exec libs
- ioctl TIOCGPTN
- handle more socket options
- add dummy syscalls so that we know what is needed (reports from users)
- linprocfs enhancements