[geeks] Dell T105 server arrives

Joshua Boyd jdboyd at jdboyd.net
Wed Apr 2 14:25:47 CDT 2008


On Wed, Apr 02, 2008 at 01:52:02PM -0500, Lionel Peterson wrote:

> Thinking about it over lunch, I got to thinking, what if the installer
> was multi-threaded (I'm thinking exactly two threads, but more might
> make sense), and there was one thread that read the entire
> distribution into RAM (the 150 Meg NetBSD, for example) *assuming*
> there was enough RAM, and then another thread (or multiple threads)
> read from memory and built up the OS image on the HD? 
> 
> The idea is that the media would be read serially, todays *huge* RAM
> could be exploited, and writes to the file system wouldn't be
> interrupted by reads from the distribution media. 
> 
> A Solaris implementation could look like this:
> 
> OK> boot cdrom -Memory
> 
> or:
> 
> OK> boot net install -Memory
> 
> I think that could be interesting (and quick?)

There is something called asynchronous IO, which would accomplish what
you suggest without threads.  aioread returns immediate before the data
you requested is actually read into the provided buffer.  You also pass
aioread a result pointer, then before you try to use the data that you
read, you check the result structure to see if the read completed.  What
this means is that with a single process you can have data in flight in
both directions at once.  

However, I am fairly certain that if you profiled the kernel during a
system install, you would find that most of the time was being spend
manipulating file system metadata.  That is the only thing I can think
of to explain why the installs always go so much more slowly than the
data rates the HDs and CD-ROMs can sustain.



More information about the geeks mailing list