Thread (128 messages) 128 messages, 18 authors, 2012-09-01

Re: [PATCH 37/74] lto, KVM: Don't assume asm statements end up in the same assembler file

From: Avi Kivity <hidden>
Date: 2012-08-19 15:13:51
Also in: kvm, lkml

On 08/19/2012 06:09 PM, Andi Kleen wrote:
quoted
The reason we use a local label is so that we the function isn't split
into two from the profiler's point of view.  See cd2276a795b013d1.
Hmm that commit message is not very enlightening.

The goal was to force a compiler error?
No, the goal was to avoid a global label in the middle of a function.
The profiler interprets it as a new function.  After your patch,
profiles will show a function named kvm_vmx_return taking a few percent
cpu, although there is no such function.
With LTO there is no way to force two functions be in the same assembler
file. The partitioner is always allowed to split.
I'm not trying to force two functions to be in the same assembler file.
quoted
One way to fix this is to have a .data variable initialized to point to
.Lkvm_vmx_return (this can be done from the same asm statement in
vmx_vcpu_run), and reference that variable in
vmx_set_constant_host_state().  If no one comes up with a better idea,
I'll write a patch doing this.
I'm not clear how that is better than my patch.
My patch will not generate the artifact with kvm_vmx_return.

-- 
error compiling committee.c: too many arguments to function
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help