[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Patch v2 2/2] hvmloader: Allow the toolstack to choose WAET optimisations



>>> On 05.12.13 at 12:09, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote:
> --- a/tools/firmware/hvmloader/acpi/acpi2_0.h
> +++ b/tools/firmware/hvmloader/acpi/acpi2_0.h
> @@ -303,6 +303,10 @@ struct acpi_20_waet {
>      struct acpi_header header;
>      uint32_t           flags;
>  };
> +#define ACPI_WAET_RTC_NO_ACK        (1<<0) /* RTC requires no int 
> acknowledge */
> +#define ACPI_WAET_TIMER_ONE_READ    (1<<1) /* PM timer requires only one 
> read */
> +
> +#define ACPI_WAET_DEFAULT_FLAGS (ACPI_WAET_TIMER_ONE_READ)

Just like said on patch 1 - at least theoretically the safe mode
(i.e. independent on whether the guest actually looks at WAET)
is ACPI_WAET_RTC_NO_ACK set.

Furthermore I don't see why this definition needs to be in the
header file. It could easily remain in the single consuming one.

> @@ -196,8 +201,22 @@ static struct acpi_20_waet *construct_waet(void)
>      memcpy(waet, &Waet, sizeof(*waet));
>  
>      waet->header.length = sizeof(*waet);
> +
> +    s = xenstore_read("platform/waet-rtc-noack", NULL);
> +    if ( s )
> +    {
> +        if ( !strncmp(s, "1", 1) )

strncmp() or strcmp()?

> +            waet->flags |= ACPI_WAET_RTC_NO_ACK;
> +        else
> +            waet->flags &= ~ACPI_WAET_RTC_NO_ACK;
> +    }
> +
>      set_checksum(waet, offsetof(struct acpi_header, checksum), 
> sizeof(*waet));
>  
> +    /* Inform Xen which RTC mode has been chosen */
> +    p.value = !!(waet->flags & ACPI_WAET_RTC_NO_ACK);

This either ought to be using the pseudo enumeration you added
to the public header, or have build time checks that 0 and 1 have
the expected meaning.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.