Michael Chang <mch...@suse.com> writes: > On Mon, Nov 30, 2015 at 08:34:18PM +0300, Andrei Borzenkov wrote: >> 30.11.2015 19:50, Andrei Borzenkov пишет: >> > 30.11.2015 19:31, Vitaly Kuznetsov пишет: >> >> Andrei Borzenkov <arvidj...@gmail.com> writes: >> >> >> >>> 26.11.2014 11:59, Laszlo Ersek пишет: >> >>>> HyperV Gen2 virtual machines have no PIT; guest code should rely on UEFI >> >>>> services instead. >> >>>> >> >>> >> >>> Could you retest with current master? It now supports multiple methods >> >>> to calibrate TSC and should avoid PIT on UEFI systems. >> >> >> >> Unfortunately, current master (grub-2.02-beta2-561-g346a494) still >> >> doesn't work for me, timer keeps running like crazy on Gen2 Hyper-V VMs. >> >> >> > >> > @Michael: I remember you tested version of Vladimir patch on Hyper-V? >> > Could you test current master? >> > > > I don't have access to Hyper-V either. My initial patch was tested on > Hyper-V from my colleage in Nuremburg. For Vladimir's patch I did tests > on my EFI machine and mostly intersted in pmtimer to function properly, > as that's new introduced timer to the patch .. > >> >> >> if ((grub_inb (GRUB_PIT_SPEAKER_PORT) & GRUB_PIT_SPK_TMR2_LATCH)) { >> ret = 1; >> /* Wait. */ >> while ((grub_inb (GRUB_PIT_SPEAKER_PORT) & GRUB_PIT_SPK_TMR2_LATCH) >> == 0x00); >> } >> >> >> If PIT is not present all reads should return 0xff so this will always >> succeed, right? Linux kernel is using some sanity checks, if loop >> terminated too early it assumes calibration failure. > > Well, yes the detection is bogus, I think the condition should check for > return 0x00, which means the timer is counting and can continue to wait > for it to finish. > > if ((grub_inb (GRUB_PIT_SPEAKER_PORT) & GRUB_PIT_SPK_TMR2_LATCH) == 0) { > ret = 1; > /* Wait. */ > while ((grub_inb (GRUB_PIT_SPEAKER_PORT) & GRUB_PIT_SPK_TMR2_LATCH) > == 0x00); > } > > Vitaly, could you please help to retest ? >
Sure, just did and with this change timer seems to be working as expected. -- Vitaly _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel