svn commit: r241053 - in head/sys/boot: common i386/libi386
uboot/lib userboot/userboot
John Baldwin
jhb at freebsd.org
Mon Oct 1 12:58:16 UTC 2012
On Saturday, September 29, 2012 12:47:57 pm Andrey V. Elsukov wrote:
> Author: ae
> Date: Sat Sep 29 16:47:56 2012
> New Revision: 241053
> URL: http://svn.freebsd.org/changeset/base/241053
>
> Log:
> Almost each time when loader opens a file, this leads to calling
> disk_open(). Very often this is called several times for one file.
> This leads to reading partition table metadata for each call. To
> reduce the number of disk I/O we have a simple block cache, but it
> is very dumb and more than half of I/O operations related to reading
> metadata, misses this cache.
>
> Introduce new cache layer to resolve this problem. It is independent
> and doesn't need initialization like bcache, and will work by default
> for all loaders which use the new DISK API. A successful disk_open()
> call to each new disk or partition produces new entry in the cache.
> Even more, when disk was already open, now opening of any nested
> partitions does not require reading top level partition table.
> So, if without this cache, partition table metadata was read around
> 20-50 times during boot, now it reads only once. This affects the booting
> from GPT and MBR from the UFS.
...and removes support for removable media like floppies. That may be the
proper thing to do at this stage (though I think that affects PC98 still
perhaps?) However, removing suppot for removable media should be an
intentional decision, not a side effect. The bcache was simplistic
precisely to support floppies.
--
John Baldwin
More information about the svn-src-head
mailing list