All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Keir Fraser <keir@xen.org>, Jan Beulich <JBeulich@suse.com>,
	Xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH] tools/hvmloader: Don't perform AML hotplug debugging in production
Date: Mon, 30 Mar 2015 11:22:30 -0400	[thread overview]
Message-ID: <20150330152229.GD31851@l.oracle.com> (raw)
In-Reply-To: <1427725219-21376-1-git-send-email-andrew.cooper3@citrix.com>

On Mon, Mar 30, 2015 at 03:20:19PM +0100, Andrew Cooper wrote:
> It is number of vmexits and a moderate quantity of qemu logging which can
> safely be avoided when not specifically debugging a PCI hotplug issue.

Could we just make qemu-X not include this data when the we
run in production? And in the field if this needs to be diagnosed
we can just pass in an extra flag to QEMU and it would do it?

> 
> As mk_dsdt is a build system tool, pass 'debug' as a command line parameter
> rather than "hardcoding" it via the compilation of mk_dsdt itself.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> CC: Keir Fraser <keir@xen.org>
> CC: Jan Beulich <JBeulich@suse.com>
> ---
>  tools/firmware/hvmloader/acpi/Makefile  |    4 ++--
>  tools/firmware/hvmloader/acpi/mk_dsdt.c |   29 ++++++++++++++++++++++-------
>  2 files changed, 24 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/firmware/hvmloader/acpi/Makefile b/tools/firmware/hvmloader/acpi/Makefile
> index 8d91881..33b714a 100644
> --- a/tools/firmware/hvmloader/acpi/Makefile
> +++ b/tools/firmware/hvmloader/acpi/Makefile
> @@ -36,12 +36,12 @@ mk_dsdt: mk_dsdt.c
>  
>  dsdt_anycpu_qemu_xen.asl: dsdt.asl mk_dsdt
>  	awk 'NR > 1 {print s} {s=$$0}' $< > $@
> -	./mk_dsdt --dm-version qemu-xen >> $@
> +	./mk_dsdt --debug=$(debug) --dm-version qemu-xen >> $@
>  
>  # NB. awk invocation is a portable alternative to 'head -n -1'
>  dsdt_%cpu.asl: dsdt.asl mk_dsdt
>  	awk 'NR > 1 {print s} {s=$$0}' $< > $@
> -	./mk_dsdt --maxcpu $*  >> $@
> +	./mk_dsdt --debug=$(debug) --maxcpu $*  >> $@
>  
>  $(filter dsdt_%.c,$(C_SRC)): %.c: iasl %.asl
>  	iasl -vs -p $* -tc $*.asl
> diff --git a/tools/firmware/hvmloader/acpi/mk_dsdt.c b/tools/firmware/hvmloader/acpi/mk_dsdt.c
> index 1392525..d7736aa 100644
> --- a/tools/firmware/hvmloader/acpi/mk_dsdt.c
> +++ b/tools/firmware/hvmloader/acpi/mk_dsdt.c
> @@ -4,9 +4,11 @@
>  #include <string.h>
>  #include <getopt.h>
>  #include <stdlib.h>
> +#include <stdbool.h>
>  #include <xen/hvm/hvm_info_table.h>
>  
>  static unsigned int indent_level;
> +static bool debug = false;
>  
>  typedef enum dm_version {
>      QEMU_XEN_TRADITIONAL,
> @@ -83,6 +85,7 @@ static void decision_tree(
>  static struct option options[] = {
>      { "maxcpu", 1, 0, 'c' },
>      { "dm-version", 1, 0, 'q' },
> +    { "debug", 1, 0, 'd' },
>      { 0, 0, 0, 0 }
>  };
>  
> @@ -125,6 +128,10 @@ int main(int argc, char **argv)
>                  return -1;
>              }
>              break;
> +        case 'd':
> +            if (*optarg == 'y')
> +                debug = true;
> +            break;
>          default:
>              return -1;
>          }
> @@ -344,14 +351,20 @@ int main(int argc, char **argv)
>              /* _SUN == dev */
>              stmt("Name", "_SUN, 0x%08x", slot >> 3);
>              push_block("Method", "_EJ0, 1");
> -            stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
> -            stmt("Store", "0x88, \\_GPE.DPT2");
> +            if ( debug )
> +            {
> +                stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
> +                stmt("Store", "0x88, \\_GPE.DPT2");
> +            }
>              stmt("Store", "0x%02x, \\_GPE.PH%02X", /* eject */
>                   (slot & 1) ? 0x10 : 0x01, slot & ~1);
>              pop_block();
>              push_block("Method", "_STA, 0");
> -            stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
> -            stmt("Store", "0x89, \\_GPE.DPT2");
> +            if (debug)
> +            {
> +                stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
> +                stmt("Store", "0x89, \\_GPE.DPT2");
> +            }
>              if ( slot & 1 )
>                  stmt("ShiftRight", "0x4, \\_GPE.PH%02X, Local1", slot & ~1);
>              else
> @@ -421,9 +434,11 @@ int main(int argc, char **argv)
>          stmt("And", "Local1, 0xf, EVT");
>          stmt("Store", "PSTB, Local1"); /* XXX: Store (PSTB, SLT) ? */
>          stmt("And", "Local1, 0xff, SLT");
> -        /* Debug */
> -        stmt("Store", "SLT, DPT1");
> -        stmt("Store", "EVT, DPT2");
> +        if (debug)
> +        {
> +            stmt("Store", "SLT, DPT1");
> +            stmt("Store", "EVT, DPT2");
> +        }
>          /* Decision tree */
>          decision_tree(0x00, 0x100, "SLT", pci_hotplug_notify);
>          pop_block();
> -- 
> 1.7.10.4
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

  reply	other threads:[~2015-03-30 15:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-30 14:20 [PATCH] tools/hvmloader: Don't perform AML hotplug debugging in production Andrew Cooper
2015-03-30 15:22 ` Konrad Rzeszutek Wilk [this message]
2015-03-30 15:30   ` Andrew Cooper
2015-03-30 15:47     ` Konrad Rzeszutek Wilk

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=20150330152229.GD31851@l.oracle.com \
    --to=konrad.wilk@oracle.com \
    --cc=JBeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=keir@xen.org \
    --cc=xen-devel@lists.xen.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.