Date: 25 Feb 2003 16:09:25 -0800 From: Arun Sharma <arun.sharma@intel.com> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: freebsd-ia64@FreeBSD.ORG Subject: Re: Slow loading of the kernel from efifs ? Message-ID: <u3cmbnbre.fsf@unix-os.sc.intel.com> In-Reply-To: <20030225213120.GA49775@ns1.xcllnt.net> References: <200302251946.h1PJktr26424@unix-os.sc.intel.com> <20030225213120.GA49775@ns1.xcllnt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Marcel Moolenaar <marcel@xcllnt.net> writes: > There may be some low-hanging fruit or even some genuine bugs that > may improve this without much work, but I haven't looked at it. Low hanging fruits first. The attached patch reduced the time required to load the kernel from about 65s to 3s on the Tiger4. -Arun --- sys/boot/efi/libefi/efifs.c- Tue Feb 25 22:57:45 2003 +++ sys/boot/efi/libefi/efifs.c Tue Feb 25 22:58:53 2003 @@ -112,6 +112,8 @@ return 0; } +#define EFI_BLOCK_SIZE (1024 * 1024) + static int efifs_read(struct open_file *f, void *buf, size_t size, size_t *resid) { @@ -123,8 +125,8 @@ bufp = buf; while (size > 0) { sz = size; - if (sz > 8192) - sz = 8192; + if (sz > EFI_BLOCK_SIZE) + sz = EFI_BLOCK_SIZE; status = file->Read(file, &sz, bufp); twiddle(); if (EFI_ERROR(status)) @@ -150,8 +152,8 @@ bufp = buf; while (size > 0) { sz = size; - if (sz > 8192) - sz = 8192; + if (sz > EFI_BLOCK_SIZE) + sz = EFI_BLOCK_SIZE; status = file->Write(file, &sz, bufp); twiddle(); if (EFI_ERROR(status)) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ia64" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?u3cmbnbre.fsf>