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

From: Avi Kivity
Date: Sun Aug 19 2012 - 11:13:43 EST


On 08/19/2012 06:09 PM, Andi Kleen wrote:
>> 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.

>
>>
>> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/