From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Oleksii Kurochko" <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] xen/x86: fix build with CONFIG_HVM=n and -Og
Date: Fri, 14 Feb 2025 01:05:00 +0000 [thread overview]
Message-ID: <f5deca6a-313f-4daf-b774-cc05223ab034@citrix.com> (raw)
In-Reply-To: <20250213185055.711703-1-stewart.hildebrand@amd.com>
On 13/02/2025 6:50 pm, Stewart Hildebrand wrote:
> When building with CONFIG_HVM=n and -Og, we encounter:
>
> prelink.o: in function `pit_set_gate':
> xen/xen/arch/x86/emul-i8254.c:195: undefined reference to `destroy_periodic_time'
>
> Add an IS_ENABLED(CONFIG_HVM) check to assist with dead code
> elimination.
>
> Fixes: 14f42af3f52d ("x86/vPIT: account for "counter stopped" time")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
While I appreciate the effort to get -Og working (I tried and gave up
due to frustration), this is gnarly.
PIT emulation is used by both PV and HVM guests. All other uses of
{create,destroy}_periodic_time() are behind something that explicitly
short-circuits in !HVM cases (usually an is_hvm_*() predicate).
The PV path would normally passes 2 for the channel, which would
normally get const-propagated and trigger DCE here.
One option might be to make pit_set_gate() be __always_inline. It only
has a single caller, and it's only because of -Og that it doesn't get
inlined. Then again, this is arguably more subtle than the fix
presented here.
A preferable fix (but one that really won't get into 4.20 at this point)
would be to genuinely compile pit->pt0 out in !HVM builds. That would
save structure space, but would also force the use of full #ifdef-ary
across this file.
Is this the singular failure with -Og, or are there others? I never got
it working, and there were quite a few failures that failed to get a
resolution.
~Andrew
next prev parent reply other threads:[~2025-02-14 1:05 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-13 18:50 [PATCH] xen/x86: fix build with CONFIG_HVM=n and -Og Stewart Hildebrand
2025-02-13 20:17 ` Oleksii Kurochko
2025-02-14 1:05 ` Andrew Cooper [this message]
2025-02-14 8:25 ` Jan Beulich
2025-03-03 21:18 ` Stewart Hildebrand
2025-03-03 18:59 ` Stewart Hildebrand
2025-03-03 19:19 ` Andrew Cooper
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=f5deca6a-313f-4daf-b774-cc05223ab034@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=jbeulich@suse.com \
--cc=oleksii.kurochko@gmail.com \
--cc=roger.pau@citrix.com \
--cc=stewart.hildebrand@amd.com \
--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.