[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.0 v2] configure: add workaround for System
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH for-2.0 v2] configure: add workaround for SystemTap PR13296 |
Date: |
Mon, 24 Mar 2014 13:55:59 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Mar 21, 2014 at 12:39:54PM -0400, Frank Ch. Eigler wrote:
> Hi -
>
> On Fri, Mar 21, 2014 at 04:28:24PM +0100, Stefan Hajnoczi wrote:
> > SystemTap sdt.h sometimes results in compiled probes without sufficient
> > information to extract arguments. See code comment for details on this
> > workaround.
> >
> > This patch fixes the apic_reset_irq_delivered() trace event on Fedora 20
> > with gcc-4.8.2-7.fc20 and systemtap-sdt-devel-2.4-2.fc20 on x86_64.
>
> An alternate solution would focus on this particular trace site.
> (It's peculiar because the surrounding code doesn't read the value
> being passed to the tracers at all, so the value is not already
> available in a register.)
>
> The benefit of this solution is that the hundreds of other trace sites
> are not affected at all. 230 of them (on my qemu-system-X86 builds)
> use register-indirect operand expressions currently, and your patch
> would force all of those to be turned into actual loads -- i.e., slow
> down qemu.
>
> Please consider whether that performance is worth it, over a
> patch as dreadful :-) as the following.
>
>
>
> diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
> index c623fcc6d813..e7bbac1be48b 100644
> --- a/hw/intc/apic_common.c
> +++ b/hw/intc/apic_common.c
> @@ -117,7 +117,10 @@ void apic_report_irq_delivered(int delivered)
>
> void apic_reset_irq_delivered(void)
> {
> - trace_apic_reset_irq_delivered(apic_irq_delivered);
> + /* Copy this into a local variable to encourage gcc to emit a plain
> + register for a sys/sdt.h marker. */
> + volatile int a_i_d = apic_irq_delivered;
> + trace_apic_reset_irq_delivered(a_i_d);
>
> apic_irq_delivered = 0;
> }
This is not too bad either. Can I add your Signed-off-by:?
Stefan