This is an old revision of the document!
Linuxolator-status
I started my work at Monday June, 5th
Diary
June 5th:
- I commited amd64 module
- I added all the syscalls + added auditing to amd64 syscalls.master + other synchronization
June 6th:
- Commited yesterday's syscall work
- Commited auditing bug found by rwatson
- Investigation of why amd64 module doesnt load (WIP)
June 7th:
- First attempt to run /bin/bash from the FC4 under 2.6.16 kernel I know whats the problem, I know whats necessary to do to solve the problem and I think I am approaching solution :) I am taking some time to think and leave this for tomorrow
- Until someone responds to my mail to hackers@ about .kld vs .ko I am unable to finish the amd64 modulification
June 8th:
- I tried various attempts (2, 4, 5 params to clone and various combinations of using fork) to make clone() work with child_stack=0 all ended with the same - strange setpgid() which doesnt work (because it has swapped params, ie. pgrp pid is not child of curproc).
- The setpgid() case is very strange because I cannot imagine what makes the bash call the setpgid() twice with the second call with swapped params (the first one is ok and succeeds).
- Many programs from fc4 with osrelease=2.6.16 work (but all with that annoying setpgid() warning at begining) some coredumps (ls coredumps, grep works), the coredump manifest itself even with “exec /bin/ls” which doesnt involve any clone() call so I think this is another issue
- I observed many interesting things in the linux land - the clone() syscalls is called with mutually exclusive flags, the clone() man page obviously lies and there's more then one difference clone() prototype in the linux kernel ;(
June 13th:
- I commited Kostik Belousov patch + my own addition and we now have fully working amd64 module
- I commited LINUXBASE path sysctl which lets you specify different LINUXBASE path, useful for debuging
- I investigated the ls (and similar) coredump - its also related to the PGRP/PGID thing.. it coredumps while performing ioctl which tries to set the PGRP of the tty, something rotten is there ;(
for the past few days I've been trying to understand how TLS is working in FreeBSD and in Linux. My summary is at: http://www.stud.fit.vutbr.cz/~xdivac02/tls.txt
Jun 30th:
- I havent been updating this often but not much happened - I learned a lot about how TLS/GDT/LDT works, reviewed a lot of FreeBSD code and have some code implementing TLS which is currently being shaped to work. I hope that the TLS will be finished in a few days.
- I found that NetBSD implementes TID processing (via ad-hoc structure) and futexes. This can be directly used in FreeBSD's linuxolator
July 2nd:
- I commited the TLS code. It has some rough edges but I am able to pass testing cases. Unfortunately I used small piece of GPL code. I sent mail to Ingo Molnar (author of the code) asking him for permission to relicense that code under BSD license.