Mike,

Thanks your clarification.  I create one patch to rename TimeoutInSeconds to 
Timeout to avoid this confusion in attachment. Please review it. 

If you and others have no additional comments, I will check-in it.

Thanks!
Jeff
-----Original Message-----
From: Mike Maslenkin [mailto:miha...@parallels.com] 
Sent: Tuesday, May 27, 2014 6:26 PM
To: Fan, Jeff
Cc: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] [PATCH 1/1] IsaFloppyDxe: fixed timeout

The platform I'm using is a Parallels Virtual Machine.

I agree with your comment about variable rename or adding some comments to 
avoid confusion. We misunderstood this place because of lack of comments. 

BTW I added trace to Recalibrate () function and tried qemu(1.7.1) with OVMF 
(https://svn.code.sf.net/p/edk2/code/trunk/edk2@15026) .

So here is a result of 'fgrep  Recalibrate $f  | wc -l':
1. command:
  qemu-system-x86_64 -boot c -m 128 -hda 'test.img' -cdrom 
'/var/iso/en_windows_8_enterprise_x64_dvd_917522.iso'  -bios ./OVMF.fd  -serial 
file:serial.log
  serial_1fdd_noimage.log:               6
  serial_2fdd_noimage.log:               12

2. command:
  qemu-system-x86_64 -boot c -m 128 -hda 'test.img' -cdrom 
'/var/iso/en_windows_8_enterprise_x64_dvd_917522.iso'  -bios ./OVMF.fd -fda 
'floppy.fdd' -serial file:serial.log
  serial_1fdd_fda.log                   1
  serial_2fdd_fda.log                   7

Here "2fdd" means default OVMF setting with 2 floppies and "1fdd" means applied 
SET gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiFloppyBEnable = FALSE

So by default there is a worst case used that causes significant delay on start.

Fortunately it looks like IsaFloppy can be excluded from FW image at all.
The major reason of floppy requirement for us is an unattended installation, 
but in case of Windows access to floppy occurs after ExitBootServices and via 
ACPI FDC0(PNP0700) device. 

On Wed, 2014-05-21 at 08:20 +0000, Fan, Jeff wrote:
> Mike,
> 
> Which platform do you use? And how much boot performance improvement could 
> you get on your platform with this fix?
> 
> Jeff
> -----Original Message-----
> From: Mike Maslenkin [mailto:mike.maslen...@gmail.com]
> Sent: Wednesday, May 21, 2014 3:01 PM
> To: edk2-devel@lists.sourceforge.net
> Cc: Fan, Jeff
> Subject: Re: [edk2] [PATCH 1/1] IsaFloppyDxe: fixed timeout
> 
> 
> On Tue, 2014-05-20 at 22:30 -0700, Jordan Justen wrote:
> > On Tue, May 20, 2014 at 7:46 PM, Fan, Jeff <jeff....@intel.com> wrote:
> > > Mike,
> > >
> > > I have one question, how do you find this issue?  Do you encounter 
> > > one real issue on your platform or you find it by code review?
> We experienced a long boot time. This patch was in series that tried to fix 
> this.
> And from the timeouts perspective it increases possible delay.
> But in case of virtual machine these conditions must be very fast, because of 
> required flags can be set immediately after some command accepted. In case of 
> real floppy device there could be a real timeouts that really required for 
> access to physical device. So using seconds here would be right.
> 
> > 
> > I will say that I've seen timeouts on floppy often account for a 
> > large part of the OVMF boot time. I haven't figured out the correct 
> > way to fix it though.
> I can point to another place where unconditional exists:
> look at Recalibrate() function:
> 
>     for (Index = 0; Index < sizeof (FDD_COMMAND_PACKET2); Index++) {
>       if (EFI_ERROR (DataOutByte (FdcDev, CommandPointer++))) {
>         return EFI_DEVICE_ERROR;
>       }
>     }
>     //
>     // Experience value
>     //
>     MicroSecondDelay (250000);
>     //
>     // need modify according to 1.44M or 2.88M
>     //
>     if (EFI_ERROR (SenseIntStatus (FdcDev, &StatusRegister0,
> &PresentCylinderNumber))) {
>       return EFI_DEVICE_ERROR;
>     }
> 
> We need to optimize it.
> 
> > It is fairly unfortunate considering floppies are almost never used with 
> > OVMF.
> 
> What about unattended installations?
> 
> > But, Mike's change seems to increase the timeout, so I guess that 
> > won't help OVMF. :)
> 
> Will try to improve  that :)
> 



Attachment: Timeout.patch
Description: Timeout.patch

------------------------------------------------------------------------------
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to