From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: EFI Xen unstable crashes on Dell E6410 when calling efi_get_time. Date: Wed, 22 Oct 2014 15:22:08 +0100 Message-ID: <5447BD90.4010908@citrix.com> References: <5446CAE2.8070206@oracle.com> <5446FA79.70602@oracle.com> <54477CCD.1010600@citrix.com> <5447A1790200007800040F54@mail.emea.novell.com> <54478E74.3010408@citrix.com> <5447D81E0200007800041139@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Xgwoo-00077P-FW for xen-devel@lists.xenproject.org; Wed, 22 Oct 2014 14:23:18 +0000 In-Reply-To: <5447D81E0200007800041139@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: xen-devel@lists.xenproject.org, "Marcos E. Matsunaga" List-Id: xen-devel@lists.xenproject.org On 22/10/14 15:15, Jan Beulich wrote: >>>> On 22.10.14 at 13:01, wrote: >> On 22/10/14 11:22, Jan Beulich wrote: >>>>>> On 22.10.14 at 11:45, wrote: >>>> For EFI calls, we run on the efi pagetables, not the idle pagetables, so >>>> I am not surprised that the assertion has failed. I suspect that the >>>> pagefault hander for hypervisor faults needs to become wise to the fact >>>> that we may receive a fault when calling into the firmware. As all the >>>> efi pagetables are xenheap pages, there is nothing conceptually wrong >>>> with using map_domain_page() to do the walk. >>> I'm not sure it's worth taking care of this special case. But yes, if >>> we really want to, extending the condition to also consider >>> efi_l4_pgtable would seem the right thing to do. >> I think being able to do a pagetable walk from an EFI fault would be >> useful, even if only to aid debugging. In this case, a non-debug build >> would successfully perform the walk. >> >> I have had a quick go, but it is rather hard to get the efi_l4_pgtable >> symbol available to use in domain_page.c without some gross extern'ing. >> It would be a nice fix if anyone has sufficient tuits. > I'll take a look, but likely only next week. > > Jan > The root cause is that the efi additions appear to be strictly linked in on the side, rather than being recompiled. As a result, you can't reference efi_l4_pgtable in non-efi code without breaking the non-efi build, and there is no CONFIG_EFI or equivalent as domain_page.c isn't recompiled. ~Andrew