All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Ian Campbell <ian.campbell@citrix.com>
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [Xen-devel] [PATCH] xen/hvc: If we use xen_raw_printk let it also work on HVM guests.
Date: Tue, 13 Aug 2013 16:53:32 -0400	[thread overview]
Message-ID: <20130813205332.GA10243@phenom.dumpdata.com> (raw)
In-Reply-To: <1376425904.9273.25.camel@hastur.hellion.org.uk>

On Tue, Aug 13, 2013 at 09:31:44PM +0100, Ian Campbell wrote:
> On Fri, 2013-08-09 at 10:55 -0400, Konrad Rzeszutek Wilk wrote:
> > The xen_raw_printk works great for debugging purposes and for
> > it print anything the Xen hypervisor has to be built with 'debug=y'.
> > 
> > As such there is no difference between a PV or an PVHVM guest
> > using the hypercall, so lets use it.
> >
> > Lastly if the hyper-page is not setup yet (for example during
> > early HVM boot), then use the 0xe9 port if it has detected
> > that it is running under an Xen hypervisor.
> 
> Does this really do what you say?
> 
> I think xen_pv_domain returns false for a PVHVM guest, meaning that we
> only use the hypercall for proper PV guests and for PVHVM we use port
> 0xe9 until the hypercall page is setup at which point we silently
> discard any attempt to print via this mechanism.
> 

'via this mechanism' refers to 0xe9 or dom0_write_console?

> or am I reading it wrong?

The code did have a bug as it would on HVM (after the hyper-page
was setup) still use 0xe9 instead of the dom0_write_console.

What it should be is:
> >  
> >  void xen_raw_console_write(const char *str)
> >  {
> > -	dom0_write_console(0, str, strlen(str));
> > +	if (!xen_domain())
> > +		return;
> > +
> > +	if (xen_pv_domain())
            xen_domain()

> > +		dom0_write_console(0, str, strlen(str));
> > +	else if (xen_hvm_domain() || xen_cpuid_base()) {
     
	else if (xen_cpuid_base()) {

> > +		/* The hyperpage has not been setup yet. */
> > +		int i, len = strlen(str);
> > +		for (i = 0; i < len; i++)
> > +			 outb(str[i], 0xe9);
> > +	}
> >  }

And then that should adhere to what I wrote up.
Thanks for pointing this out!

  reply	other threads:[~2013-08-13 20:53 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-09 14:55 [PATCH] xen/hvc: If we use xen_raw_printk let it also work on HVM guests Konrad Rzeszutek Wilk
2013-08-13 20:31 ` Ian Campbell
2013-08-13 20:31 ` [Xen-devel] " Ian Campbell
2013-08-13 20:53   ` Konrad Rzeszutek Wilk [this message]
2013-08-13 20:59     ` Ian Campbell
2013-08-13 22:20       ` Ian Campbell
2013-08-13 22:20       ` [Xen-devel] " Ian Campbell
2013-08-14  0:10         ` Konrad Rzeszutek Wilk
2013-08-14  0:10         ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-08-14  7:15           ` Ian Campbell
2013-08-14  7:15           ` [Xen-devel] " Ian Campbell
2013-08-14 12:46             ` Konrad Rzeszutek Wilk
2013-08-14 12:46             ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-08-15 14:40               ` Ian Campbell
2013-08-20 19:35                 ` Konrad Rzeszutek Wilk
2013-08-21  9:15                   ` Ian Campbell
2013-08-21 10:44                     ` Konrad Rzeszutek Wilk
2013-08-22  7:15                       ` Ian Campbell
2013-08-22  7:15                       ` [Xen-devel] " Ian Campbell
2013-08-21 10:44                     ` Konrad Rzeszutek Wilk
2013-08-21  9:15                   ` Ian Campbell
2013-08-20 19:35                 ` Konrad Rzeszutek Wilk
2013-08-15 14:40               ` Ian Campbell
2013-08-13 20:59     ` Ian Campbell
2013-08-13 20:53   ` 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=20130813205332.GA10243@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=ian.campbell@citrix.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xen-devel@lists.xenproject.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.