From: Jan Beulich <jbeulich@suse.com>
To: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Teddy Astie <teddy.astie@vates.tech>,
Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
Date: Wed, 13 May 2026 17:42:58 +0200 [thread overview]
Message-ID: <6ef656b3-0428-4867-aea2-901d852d12e7@suse.com> (raw)
In-Reply-To: <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
On 13.05.2026 16:58, Jan Beulich wrote:
> On 13.05.2026 16:24, Roger Pau Monné wrote:
>> On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
>>> Both ROMBIOS and SeaBIOS (with CONFIG_QEMU=y, as we build it) blindly
>>> assume availability of this field (at its conventional index 0x32); OVMF
>>> at least has code to inspect FADT. Hence we ought to have supported it
>>> virtually forever.
>>>
>>> As the index is beyond RTC_CMOS_SIZE, leverage the padding field in
>>> struct hvm_hw_rtc to hold its value. Update the field only when involved
>>> values are valid BCD century specifiers. Otherwise (for VMs migrated in
>>> from an older hypervisor) leave handling to the DM.
>>>
>>> This makes the Linux rtc-cmos driver report y3k compatibility.
>>>
>>> While extending xen-hvmctx.c:dump_rtc() also add RTC offset there.
>>>
>>> Fixes: 4ca161214355 ("[HVM] Move RTC emulation into the hypervisor")
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Am I overly paranoid with the checking of the field, considering that
>>> Xen 3.x post-dates year 2000 and hence all firmware nowadays usable guests
>>> have ever run with should have been aware of the field? Or am I, quite the
>>> opposite, still not strict enough?
>>>
>>> I can't help the impression that this introduces a latency issue for
>>> the 2nd of gmtime()'s while() loops: We now allow years up into the 99th
>>> century, i.e. over 8000 years away from 1970. 8000 years are very roughly
>>> 2^^38 seconds, making for (again very roughly) 5 million iterations there.
>>> Did I get my math wrong, or do we need a prereq change to (vastly) reduce
>>> the number of iterations of that loop (e.g. along the lines of the other
>>> one, first going in 400 year steps)?
>>
>> Hm, maybe we need to add some XTF testing for the RTC? I'm slightly
>> worried how much time this could take, and since those calls are
>> serialized on the s->lock I wonder whether enough parallel accesses
>> from the guest could manage to trigger the watchdog?
>
> I'm not really up to making an XTF test, I guess. However, as you look to
> share my concern, I'll add a prereq patch adjusting gmtime().
While making such a patch, I noticed my flaw in the description above: That
loop walks in granularity of years, so can't have more than about 10k
iterations. Shortening the processing by first going in 400-year steps may
still be worthwhile, but doesn't look to be strictly required.
Jan
next prev parent reply other threads:[~2026-05-13 15:43 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-12 14:57 [PATCH 0/5] x86/time: CMOS RTC century byte Jan Beulich
2026-05-12 14:58 ` [PATCH for-4.22 1/5] x86/time: use RTC century byte when available Jan Beulich
2026-05-13 8:49 ` Roger Pau Monné
2026-05-13 10:36 ` Jan Beulich
2026-05-13 14:51 ` Roger Pau Monné
2026-05-13 15:08 ` Jan Beulich
2026-05-14 7:27 ` Oleksii Kurochko
2026-05-15 6:42 ` Jan Beulich
2026-05-12 14:59 ` [PATCH 2/5] x86/time: move BCD_TO_BIN() uses Jan Beulich
2026-05-13 8:56 ` Roger Pau Monné
2026-05-13 10:39 ` Jan Beulich
2026-05-13 14:58 ` Roger Pau Monné
2026-05-13 15:15 ` Jan Beulich
2026-05-13 19:08 ` Roger Pau Monné
2026-05-15 6:40 ` Jan Beulich
2026-05-12 14:59 ` [PATCH for-4.22 3/5] x86/vRTC: support century field Jan Beulich
2026-05-13 14:24 ` Roger Pau Monné
2026-05-13 14:58 ` Jan Beulich
2026-05-13 15:14 ` Roger Pau Monné
2026-05-13 15:24 ` Jan Beulich
2026-05-13 19:40 ` Roger Pau Monné
2026-05-15 6:52 ` Jan Beulich
2026-05-15 8:42 ` Roger Pau Monné
2026-05-15 8:48 ` Jan Beulich
2026-05-13 15:42 ` Jan Beulich [this message]
2026-05-12 15:00 ` [PATCH 4/5] x86/vRTC: use available macros for BCD <-> BIN conversion Jan Beulich
2026-05-13 14:39 ` Roger Pau Monné
2026-05-12 15:00 ` [PATCH 5/5] tools/xen-hvmctx: shorten various format strings a little Jan Beulich
2026-05-13 15:00 ` Roger Pau Monné
2026-05-15 9:32 ` Anthony PERARD
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6ef656b3-0428-4867-aea2-901d852d12e7@suse.com \
--to=jbeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=oleksii.kurochko@gmail.com \
--cc=roger.pau@citrix.com \
--cc=teddy.astie@vates.tech \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.