All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@linaro.org>
To: Frediano Ziglio <freddy77@gmail.com>,
	Ian Campbell <Ian.Campbell@citrix.com>
Cc: Tim Deegan <tim@xen.org>,
	Stefano Stabellini <stefano.stabellini@citrix.com>,
	xen-devel@lists.xen.org
Subject: Re: [PATCH] xen/arm: dump guest stack even if not the current VCPU
Date: Mon, 20 Oct 2014 18:42:59 +0100	[thread overview]
Message-ID: <544549A3.7060402@linaro.org> (raw)
In-Reply-To: <CAHt6W4dS+v_3RExtstzfwRWCEKfd3Z+WFXLN1Q4EQbErdb6XzQ@mail.gmail.com>

Hi Frediano,

Thank you for the patch.

On 20/10/2014 16:39, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@huawei.com>
>
> If show_guest_stack was called from Xen context (for instance hitting
> '0' key on Xen console) get_page_from_gva was not able to get the
> page returning NULL.
> Detecting different domain and changing VTTBR register make
> get_page_from_gva works for different domains.
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@huawei.com>
> ---
>   xen/arch/arm/p2m.c   | 7 ++++++-
>   xen/arch/arm/traps.c | 2 +-
>   2 files changed, 7 insertions(+), 2 deletions(-)
>
> Tested manually on a D01 board. I actually have only dom0 so EL1 is
> already pointing to the right domain. I have some doubt about the
> is_idle_domain test inside p2m_load_VTTBR.

I guess this patch could be consider as a bug fix for Xen 4.5. It makes 
dump stack working when the dump domain key is hit.

> I used the "unlikely" to avoid decreasing performances on the normal
> cases, I'm fine if you remove them.

I'm fine with keeping the unlikely.

>
> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
> index 1585d35..cf872fc 100644
> --- a/xen/arch/arm/p2m.c
> +++ b/xen/arch/arm/p2m.c
> @@ -1178,7 +1178,8 @@ struct page_info *get_page_from_gva(struct
> domain *d, vaddr_t va,
>       struct page_info *page = NULL;
>       paddr_t maddr;
>
> -    ASSERT(d == current->domain);
> +    if ( unlikely(d != current->domain) )
> +        p2m_load_VTTBR(d);

The code between the 2 p2m_load_VTTBR should not interrupted by an 
interrupt. I send a similar patch (https://patches.linaro.org/38895/) 
for flush_tlb_domain.

>       spin_lock(&p2m->lock);

I think taking the lock for the whole function is a bit too much here.
IHMO, the lock is only necessary for gvirt_to_maddr.

But this is 4.6 material if the patch reaches 4.5.

Regards,

-- 
Julien Grall

      reply	other threads:[~2014-10-20 17:42 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-20 15:39 [PATCH] xen/arm: dump guest stack even if not the current VCPU Frediano Ziglio
2014-10-20 17:42 ` Julien Grall [this message]

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=544549A3.7060402@linaro.org \
    --to=julien.grall@linaro.org \
    --cc=Ian.Campbell@citrix.com \
    --cc=freddy77@gmail.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=tim@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.