This is an old revision of the document!


I started my work at Monday June, 5th

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.

July 19th:

  • We have working NPTL now. Testing is in progress.
  • I bumped osrelease from 2.4.2 to 2.6.16 sorry for being silent for such a long time but I was reading code/coding hard :)

August 6th:

  • I've been hunting down some bugs and I think now I have it fully working
  • I am about to generate patch for public testing
  • the next focus is to port it to amd64 (which should be easy) and fix the bugs revealed in public testing
  • romandivacky/linuxolator-status.1154855385.txt.gz
  • Last modified: 2006/08/06 09:09
  • by RomanDivacky