[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Revert "iee1275/datetime: Fix off-by-1 error."
From: |
Daniel Axtens |
Subject: |
Re: [PATCH] Revert "iee1275/datetime: Fix off-by-1 error." |
Date: |
Fri, 11 Feb 2022 16:38:39 +1100 |
> I suspect its the same on KVM and TCG because the machine definition is
> the same and doesn't container either an RTC nor a CMOS. What confusing
> to me is, don't these machines have clocks?
They do have clocks! Sadly I know very little about the clocks. `date`
works fine in Linux, so I suspect there's something where SLOF doesn't
expose whatever it is that we need in the form we expect, or something
like that.
I guess someone should hunt it down but given that timeouts and such
work (so I guess we have a working relative timer), I can't say it's
likely to be a huge priority for anyone...
Kind regards,
Daniel
>
>>
>> I also tested an LPAR on a Power8 PowerVM machine. In this case, before
>> the patch, grub printed:
>>
>> grub> date
>> 2022-02-09 04:31:10 Wednesday
>>
>> whereas on booting:
>>
>> [dja@sauce ~]$ date -u
>> Tue Feb 8 04:46:40 UTC 2022
>>
>> After applying the patch, grub printed:
>>
>> grub> date
>> 2022-02-08 04:51:27 Tuesday
>>
>> It seems the patch makes things better.
>
> Great thanks Daniel for confirming this.
>
> Glenn
>
>>
>> Tested-by: Daniel Axtens <dja@axtens.net>
>>
>> Kind regards,
>> Daniel
>>
>> Glenn Washburn <development@efficientek.com> writes:
>>
>> > This is causing the test grub_cmd_date to fail because the returned date is
>> > one day more than it should be.
>> >
>> > This reverts commit 607d66116a67e5a13eb0d46076f26dedc988e6a4.
>> >
>> > Signed-off-by: Glenn Washburn <development@efficientek.com>
>> > ---
>> > Hi all,
>> >
>> > Reverting this commit allows the grub_cmd_date test to pass. It appears
>> > that
>> > this commit is (now) causing an off-by-1 error in QEMU and the latest
>> > OpenBIOS.
>> > What I'm unsure of is if the original commit is actually correct on real
>> > hardware and that potentially OpenBIOS has a bug.
>> >
>> > Adrian and Daniel A, could you test the reverting of this commit on real
>> > hardware and see if date does in fact produce the expected date (and do
>> > current
>> > builds show a date one day ahead of what it should be)? Can anyone point to
>> > documentation saying that the original commit is in fact what should
>> > be done? If the issue is in OpenBIOS I'd like to have some documentation
>> > to back up a bug report.
>> >
>> > Vladimir, do you have any thoughts on this?
>> >
>> > Glenn
>> >
>> > ---
>> > grub-core/lib/ieee1275/datetime.c | 4 ++--
>> > 1 file changed, 2 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/grub-core/lib/ieee1275/datetime.c
>> > b/grub-core/lib/ieee1275/datetime.c
>> > index b81fba2ed..74578f15a 100644
>> > --- a/grub-core/lib/ieee1275/datetime.c
>> > +++ b/grub-core/lib/ieee1275/datetime.c
>> > @@ -95,7 +95,7 @@ grub_get_datetime (struct grub_datetime *datetime)
>> >
>> > datetime->year = args.year;
>> > datetime->month = args.month;
>> > - datetime->day = args.day + 1;
>> > + datetime->day = args.day;
>> > datetime->hour = args.hour;
>> > datetime->minute = args.minute;
>> > datetime->second = args.second;
>> > @@ -140,7 +140,7 @@ grub_set_datetime (struct grub_datetime *datetime)
>> >
>> > args.year = datetime->year;
>> > args.month = datetime->month;
>> > - args.day = datetime->day - 1;
>> > + args.day = datetime->day;
>> > args.hour = datetime->hour;
>> > args.minute = datetime->minute;
>> > args.second = datetime->second;
>> > --
>> > 2.27.0