Tried the block IO patch. It is much better than the current default performance of 1.99. For the same initrd image (160M), loading from USB took approx 20 secs. I also tried changing the value of GRUB_DISK_CACHE_BITS from 6 to 8, and load time improved to approx 12 secs. Just to note, on Legacy Grub, this gets loaded almost in 3 secs.
Thanks, Aravind ----- Original Message ---- From: Vladimir 'φ-coder/phcoder' Serbinenko <phco...@gmail.com> To: The development of GNU GRUB <grub-devel@gnu.org> Sent: Tue, April 5, 2011 12:36:35 AM Subject: Re: Grub2 EFI: Image loading from USB takes too long On 05.04.2011 08:32, Vladimir 'φ-coder/phcoder' Serbinenko wrote: > On 05.04.2011 07:33, Aravind Srinivasan wrote: >> include/grub/disk.h >> <snip> >> /* The size of a disk cache in sector units. */ >> #define GRUB_DISK_CACHE_SIZE 8 >> #define GRUB_DISK_CACHE_BITS 3 >> <snip> >> >> I tried changing this value to 8192 - and the time it took to load the same >> image came down to 10 secs ! >> /* The size of a disk cache in sector units. */ >> #define GRUB_DISK_CACHE_SIZE 8192 >> #define GRUB_DISK_CACHE_BITS 13 >> >> I am not sure of the reason for setting the cache size to a low value and any >> possible issues in increasing this size. Appreciate any input on this. > This value is a misnomer. It's not a cache size but a cache unit size. As >immediate effect it has that if one reads a single 512B, sector one reads an >entire block of 4K. Under normal conditions values of around 32K-128K >(6-8/64-256) would be optimal. It seems that some EFI implementations do a >"buffering" only to discard the buffered data. Some of the reports suggest >that >this braindamage is limited to disk io and doesn't happen with Block IO. >Values >you propose would result in 4M reads even when one needs just few sectors and >so >is suboptimal under normal conditions. > I'll prepare few patches to investigate. > After 1.99 the GRUB_DISK_CACHE_BITS will be increased to 6-8 range since, > it's >optimal and my AF support requires sector size to be smaller than cache unit >size. > Attached a patch based on my AF patch which change to block IO. -- Regards Vladimir 'φ-coder/phcoder' Serbinenko _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel