This is a summary of ideas from a email discussion between Dave Hudson
and myself. (Part 1/3)
[1 - Server Startup Synchronization]
I've been working on a boot/root floppy startup based on Dave Hudson's
VSTa floppy boot stuff, and I have an interesting problem. What I am
doing is copying a image off the disk onto tmpfs and then starting vstafs
on the image which is on the tmpfs. However, vstafs will try to startup
it's filesystem on the tmpfs file as soon as the file exists, and it
fails, because there is not enough file there. I made a workaround by
just making a custom vstafs which just goes to sleep for a long enough
time to get the whole image loaded. A better way to synchronize dependent
servers like this is really necessary.
Dave and I came upon two ideas. I suppose they could be more of "short
term" and "long term" ideas instead of conflicting.
1) Put in exclusive file access, this way vstafs would have to wait until
the file was ready in order to open it and start the filesystem on it.
This still complicates the NEXT stage of the process though, becuase init
is going to try and mount "fs/root" right away whether vstafs is ready or
not. (and it'll only wait so long, thus it'll require another special case)
2) Create a semaphore server where different servers could wait on
resource semaphores. Resources are essentially in one of three categories
"non-existant" (and thus not-ready), "existant but not ready", and
"ready". The most important case is the "non-existant" case, because you
don't know how long, or even if, a resource will become available if it's
non-existant. Especially in the boot process, it will be usefull to allow
a set of resource semaphores to be "pre-created" so that servers waiting
for them will know that they will eventually come online, and will never
quit trying until they do.
Received on Wed Aug 9 12:22:59 1995
This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:27 PDT