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
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