On 2016/1/21 20:54, Andrew Jones wrote: > This patch is the ACPI equivalent of "hw/arm/virt: Add always-on > property to the virt board timer". The timer is always on, and > thus setting this informs Linux that it may switch off the periodic > timer. Switching off the periodic timer substantially reduces the > number of interrupts the host needs to inject. > > Testing note: AArch64 guests (the only ones currently booting with > ACPI) do not actually need this patch to determine it can turn the > periodic timer off. I therefore used a hacked guest kernel to ensure > this patch works as the equivalent DT patch does. > Reviewed-by: Shannon Zhao <shannon.z...@linaro.org>
> Signed-off-by: Andrew Jones <drjo...@redhat.com> > --- > hw/arm/virt-acpi-build.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 87fbe7c97d99b..f6e538f3d02ea 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -443,7 +443,7 @@ build_gtdt(GArray *table_data, GArray *linker) > gtdt->secure_el1_flags = ACPI_EDGE_SENSITIVE; > > gtdt->non_secure_el1_interrupt = ARCH_TIMER_NS_EL1_IRQ + 16; > - gtdt->non_secure_el1_flags = ACPI_EDGE_SENSITIVE; > + gtdt->non_secure_el1_flags = ACPI_EDGE_SENSITIVE | ACPI_GTDT_ALWAYS_ON; > > gtdt->virtual_timer_interrupt = ARCH_TIMER_VIRT_IRQ + 16; > gtdt->virtual_timer_flags = ACPI_EDGE_SENSITIVE; > -- Shannon