All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
	akataria@vmware.com, the arch/x86 maintainers <x86@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: VMI broken on tip/master...
Date: Mon, 16 Mar 2009 15:03:28 -0700	[thread overview]
Message-ID: <49BECCB0.4010804@goop.org> (raw)
In-Reply-To: <alpine.DEB.2.00.0903161200320.26431@gandalf.stny.rr.com>

Steven Rostedt wrote:
> On Sun, 15 Mar 2009, Peter Zijlstra wrote:
>   
>> Looking at arch/x86/include/asm/paravirt.h (god I wish paravirt would go
>> away, not only does it screw over ctags, it also hurts my brain), it
>> appears its playing icky games with primitives like
>> raw_local_irq_disable():
>>
>> static inline void raw_local_irq_disable(void)
>> {
>>         asm volatile(paravirt_alt(PARAVIRT_CALL)
>>                      :
>>                      : paravirt_type(pv_irq_ops.irq_disable),
>>                        paravirt_clobber(CLBR_EAX)
>>                      : "memory", "eax", "cc");
>> }
>>
>> So what was supposed to be a simple op, now gets expanded into god knows
>> what, and might lead to tracer recursion or something.
>>     
>
> It should only blow up if a guest is using tracing, and the code to call
> the hypervisor is also being traced.
>
>   
>> Maybe a simple notrace annotation somewhere in that paravirt code is all
>> it takes, who knows.
>>
>> Steve, you've been known to work on virt stuff too, happen to have a
>> bright idea? :-)
>>     
>
> I have noticed that some paravirt ops calls (like this 
> raw_local_irq_disable) does not get inlined. It sometimes gets made into a 
> function.  This would cause raw_local_irq_disable to actually be traced!
>
> One answer is to use "always_inline" or I can dig out a patch that makes 
> inline also include "notrace".

Yes, these should probably be always_inline and notrace (just in case 
gcc gets it into its head that it might be a good idea to put mcount 
calls into inlined functions).

    J

  reply	other threads:[~2009-03-16 22:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-13 17:56 VMI broken on tip/master Alok Kataria
2009-03-14 23:20 ` Peter Zijlstra
2009-03-14 23:45   ` Jeremy Fitzhardinge
2009-03-16 16:04   ` Steven Rostedt
2009-03-16 22:03     ` Jeremy Fitzhardinge [this message]
2009-03-14 23:45 ` Jeremy Fitzhardinge
2009-03-16 22:42   ` Alok Kataria
2009-03-16 22:54     ` Jeremy Fitzhardinge
2009-03-16 23:49       ` Alok Kataria

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=49BECCB0.4010804@goop.org \
    --to=jeremy@goop.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akataria@vmware.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=x86@kernel.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.