All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@verge.net.au>
To: Olaf Hering <olaf@aepfle.de>
Cc: kexec@lists.infradead.org
Subject: Re: [PATCH] detect Xen dom0 properly to avoid conflict with pv_on_hvm domU
Date: Thu, 5 May 2011 21:20:03 +0900	[thread overview]
Message-ID: <20110505122003.GM22010@verge.net.au> (raw)
In-Reply-To: <20110504163232.GA24669@aepfle.de>

On Wed, May 04, 2011 at 06:32:32PM +0200, Olaf Hering wrote:
> A Xen HVM guest with PV drivers loaded has also a /proc/xen directory.
> But such a guest is an ordinary PC and the special handling for dom0
> breaks kdump in this environment.
> Test for /proc/xen/capabilities instead and cache the result.
> 
> Also make two variables static, they are only used in this file.
> 
> Signed-off-by: Olaf Hering <olaf@aepfle.de>
> 
> ---
>  kexec/crashdump-xen.c |   15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> Index: kexec-tools-0.8.15/kexec/crashdump-xen.c
> ===================================================================
> --- kexec-tools-0.8.15.orig/kexec/crashdump-xen.c
> +++ kexec-tools-0.8.15/kexec/crashdump-xen.c
> @@ -25,14 +25,19 @@ struct crash_note_info {
>  	unsigned long length;
>  };
>  
> -int xen_phys_cpus = 0;
> -struct crash_note_info *xen_phys_notes;
> +static int xen_phys_cpus;
> +static struct crash_note_info *xen_phys_notes;
> +static int is_dom0;

I think you need to explicitly initialise is_dom0 to 0.

Alternatively, is it really such a burden to call access()
each time xen_present() is called?  (I'm ambivalent with regards to this).

>  
>  int xen_present(void)
>  {
> -	struct stat buf;
> -
> -	return stat("/proc/xen", &buf) == 0;
> +	if (!is_dom0) {
> +		if (access("/proc/xen/capabilities", F_OK) == 0)
> +			is_dom0 = 1;
> +		else
> +			is_dom0 = -1;
> +	}
> +	return is_dom0 > 0;
>  }
>  
>  unsigned long xen_architecture(struct crash_elf_info *elf_info)
> 
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
> 

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2011-05-05 12:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-04 16:32 [PATCH] detect Xen dom0 properly to avoid conflict with pv_on_hvm domU Olaf Hering
2011-05-05 12:20 ` Simon Horman [this message]
2011-05-05 12:34   ` Olaf Hering
2011-05-06  3:29     ` Simon Horman

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=20110505122003.GM22010@verge.net.au \
    --to=horms@verge.net.au \
    --cc=kexec@lists.infradead.org \
    --cc=olaf@aepfle.de \
    /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.