From: Andrew Jones <drjones@redhat.com>
To: Marc Zyngier <marc.zyngier@arm.com>
Cc: qemu-devel@nongnu.org, Christoffer Dall <christoffer.dall@linaro.org>
Subject: Re: [Qemu-devel] [PATCH] hw/arm/virt: Add always-on property to the virt board timer
Date: Tue, 19 Jan 2016 15:07:14 +0100 [thread overview]
Message-ID: <20160119140714.GB13745@hawk.localdomain> (raw)
In-Reply-To: <569E3D6B.5030501@arm.com>
On Tue, Jan 19, 2016 at 01:43:07PM +0000, Marc Zyngier wrote:
> On 19/01/16 13:32, Andrew Jones wrote:
> > On Tue, Jan 19, 2016 at 01:43:41PM +0100, Christoffer Dall wrote:
> >> On Tue, Jan 19, 2016 at 01:37:16PM +0100, Andrew Jones wrote:
> >>> On Tue, Jan 19, 2016 at 12:49:18PM +0100, Christoffer Dall wrote:
> >>>> The virt board has an arch timer, which is always on. Emit the
> >>>> "always-on" property to indicate to Linux that it can switch off the
> >>>> periodic timer and reduces the amount of interrupts injected into a
> >>>> guest.
> >>>>
> >>>> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
> >>>> ---
> >>>> hw/arm/virt.c | 1 +
> >>>> 1 file changed, 1 insertion(+)
> >>>>
> >>>> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> >>>> index 05f9087..265fe9a 100644
> >>>> --- a/hw/arm/virt.c
> >>>> +++ b/hw/arm/virt.c
> >>>> @@ -291,6 +291,7 @@ static void fdt_add_timer_nodes(const VirtBoardInfo *vbi, int gictype)
> >>>> qemu_fdt_setprop_string(vbi->fdt, "/timer", "compatible",
> >>>> "arm,armv7-timer");
> >>>> }
> >>>> + qemu_fdt_setprop(vbi->fdt, "/timer", "always-on", NULL, 0);
> >>>> qemu_fdt_setprop_cells(vbi->fdt, "/timer", "interrupts",
> >>>> GIC_FDT_IRQ_TYPE_PPI, ARCH_TIMER_S_EL1_IRQ, irqflags,
> >>>> GIC_FDT_IRQ_TYPE_PPI, ARCH_TIMER_NS_EL1_IRQ, irqflags,
> >>>> --
> >>>> 2.1.2.330.g565301e.dirty
> >>>>
> >>>>
> >>>
> >>> Hi Christoffer,
> >>>
> >>> We should also patch the ACPI generation at the same time. I think
> >>> something like
> >>>
> >>> - gtdt->non_secure_el1_flags = ACPI_EDGE_SENSITIVE;
> >>> + gtdt->non_secure_el1_flags = ACPI_EDGE_SENSITIVE | ACPI_GTDT_ALWAYS_ON;
> >>
> >> I'm really not familiar enough with ACPI to be comfortable writing code
> >> for this or testing this.
> >>
> >> But if someone can pick this up and add the ACPI bits or can post a
> >> follow-up patch, then I'm all for it :)
> >
> > I can post a follow-up patch.
> >
> >>
> >>>
> >>> should do it.
> >>>
> >>> Also, having the guest reduce the number of interrupts sounds good. Can
> >>> you point me to something to read about how/why a guest may choose to do
> >>> that, and what the trade-offs are?
> >>>
> >> Not really, but you can ask Marc.
> >
> > OK, CCing him. One thing I see is that without this change we're
> > currently setting the clock feature CLOCK_EVT_FEAT_C3STOP, even though
> > it's not true. Having that set may disable the oneshot capabilityj
> > necessary to switch to nohz mode? I'll just stop there with my
> > speculation though, so Marc won't have to correct too much...
>
> You're spot on. See 82a5619 in the kernel tree. When I did a similar
> change in kvmtool, I saw a massive reduction in the number of timer
> interrupts injected (specially when the number of vcpu is relatively high).
>
> This also have interesting benefits when running on a model, where
> you're trying to squeeze the last bits of "performance" from the monster...
>
> Thanks,
Thanks Marc! Christoffer, I'll create the ACPI patch, and do some pre-/post-
tracing to confirm the happy reduction in interrupts :-)
Also, as for this patch,
Reviewed-by: Andrew Jones <drjones@redhat.com>
drew
next prev parent reply other threads:[~2016-01-19 14:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-19 11:49 [Qemu-devel] [PATCH] hw/arm/virt: Add always-on property to the virt board timer Christoffer Dall
2016-01-19 12:37 ` Andrew Jones
2016-01-19 12:43 ` Christoffer Dall
2016-01-19 13:32 ` Andrew Jones
2016-01-19 13:43 ` Marc Zyngier
2016-01-19 14:07 ` Andrew Jones [this message]
2016-01-19 18:48 ` Andrew Jones
2016-01-20 14:01 ` Andrew Jones
2016-01-20 14:28 ` Marc Zyngier
2016-01-20 15:06 ` Andrew Jones
2016-01-20 16:20 ` Marc Zyngier
2016-01-20 16:47 ` Andrew Jones
2016-01-20 17:08 ` Marc Zyngier
2016-01-19 15:21 ` Peter Maydell
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=20160119140714.GB13745@hawk.localdomain \
--to=drjones@redhat.com \
--cc=christoffer.dall@linaro.org \
--cc=marc.zyngier@arm.com \
--cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).