From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758125AbcBXRWi (ORCPT ); Wed, 24 Feb 2016 12:22:38 -0500 Received: from smtp02.citrix.com ([66.165.176.63]:2990 "EHLO SMTP02.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756936AbcBXRWb (ORCPT ); Wed, 24 Feb 2016 12:22:31 -0500 X-IronPort-AV: E=Sophos;i="5.22,494,1449532800"; d="scan'208";a="340812991" Subject: Re: [Xen-devel] [PATCH 1/2] hvc_xen: add earlycon support To: Konrad Rzeszutek Wilk , Stefano Stabellini References: <1456316590-20020-1-git-send-email-stefano.stabellini@eu.citrix.com> <56CDC182.9050205@oracle.com> <20160224171842.GA9463@char.us.oracle.com> CC: Boris Ostrovsky , , , From: Andrew Cooper Message-ID: <56CDE6D5.70205@citrix.com> Date: Wed, 24 Feb 2016 17:22:29 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160224171842.GA9463@char.us.oracle.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-DLP: MIA2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24/02/16 17:18, Konrad Rzeszutek Wilk wrote: >> I could do the same here by dropping the if (!xen_pv_domain()) check >> above, but then if somebody specifies earlyprintk=xenboot on a non-Xen >> environment, I expect Linux would crash. > Nah, you made it "Work" with: > commit eb5ef07151ba3c3cb4bcef0c8f146ff1115eaa55 > Author: Stefano Stabellini > Date: Fri Jan 27 18:31:36 2012 +0000 > > hvc_xen: support PV on HVM consoles > > But this patch: > > commit 04b772d2b819f0dda2163e3193fa7cd447a6245c > > xen/hvc: If we use xen_raw_printk let it also work on HVM guests. > > The xen_raw_printk works great for debugging purposes. We use > for PV guests and we can also use it for HVM guests. > > However, for HVM guests we have a fallback of using the 0xe9 > port in case the hypervisor does not support an HVM guest of > using the console_io hypercall. As such lets use 0xe9 during > early bootup, and once the hyper-page is setup and if the > console_io hypercall is supported - use that. Otherwise we > will fallback to using the 0xe9 after early bootup. > > We also alter the return value for dom0_write_console to return > an error value instead of zero. The HVC API has been supporting > returning error values for quite some time. > > P.S. > To use (and to see the output in the Xen ring buffer) one has to build > the hypervisor with 'debug=y'. > > Should make it possible for HVM guests to actually work with HVM x86 guests > if tweaked. /me looks +outb_print: + for (i = 0; i < len; i++) + outb(str[i], 0xe9); +#endif You already have the length to hand. Use outsb instead, for substantially fewer vmexits. ~Andrew