From: Jeff Dike <jdike@ad...> - 2004-04-08 02:22:51
This long-awaited patch contains a lot of stuff.
First the bug fixes:
fixed some failed reboots by making sure that no signals can arrive
between the exec of the new instance and when it's ready to receive signals
also fixed a similar skas-mode bug cause by enabling the timer before
a handler was established for it
the COW header is more 64-bit clean now
the klogd crash is fixed
the real-time clock now uses gettimeofday rather than the tsc,
improving portability, providing better behavior when the CPU slows or idles,
and fixes a crash caused by running UML in a chroot jail
the 'tracing myself' bug on 2.6 hosts is now properly fixed
The functionality is two main things - humfs and aio support.
humfs is a new host filesystem which provides proper ownership support, which
hostfs sorely lacks. It does this by separating the ownership information
from the file ala umsdos. The immediate impetus for this was to allow file
data to be mmapped from the host, which, in conjunction with /dev/anon, will
provide nice memory savings. There turn out to be a number of other benefits
which I describe on my diary page -
In order to use humfs, you'll need to configure the filesystem on the host
properly. There's a utility to do this in the uml_utilities, which will be
released shortly. I'm also going to write up a description of how it works
and sending it to the lists, as well as putting something on the UML site.
I also added improved aio support. There are two varieties, one is the
ubd-style one-synchronous-request-at-a-time IO thread, and another which creates
a thread which uses the 2.6 aio interfaces to handle an arbitrary number of
pending requests. This will hopefully start to fix the IO performance problems
that UML currently has. The ubd driver will be converted over to use this,
giving it access to full aio when it's supported by the host. humfs already
does use it.
There was also a restructuring of hostfs. There is an abstract, pluggable
interface between the kernel and user sides. Both hostfs_user and humfs
are user modules which plug into this interface. There are many more
possibilities. See the diary above for more details.