From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: xentrace, arm, hvm Date: Mon, 03 Feb 2014 20:32:53 +0000 Message-ID: <52EFFCF5.5070108@linaro.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Pavlo Suikov Cc: Stefano Stabellini , Ian Campbell , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 02/03/2014 05:32 PM, Pavlo Suikov wrote: > Hi, Hello, > has anyone used xentrace on arm with HVM domains? As far as I observe, > it fails to map trace buffers from Xen restricted heap: > xc_map_foreign_batch() call with DOMID_XEN permissions leads to > xenmem_add_to_physmap_one() and then to rcu_lock_domain_by_any_id(), > which fails to find DOMID_XEN in the domain hash (and it doesn't seem at > all that dummy domains are added to this hash). Actually I don't see how > this could work at all since there are no obvious checks for either arch > or domain type (PV or HVM) along the way. After a quick look to Xen, it seems that xentrace was only working for x86 PV (the issue will be the same on PVH). It was working because PV domain uses mmu_update hypercall. In this function, x86 has a specific case for DOMID_XEN (see get_pg_owner). To support xentrace on ARM, we will need at least: - to replace rcu_lock_domain_by_any_id() by a a similar function - to add stubs for trace in arm code BTW, when I tried xentrace I have this following error in kernel log messages: Failed to map pfn to mfn rc:0:-3 pfn:1e9d0 mfn:fdfbe xen_privcmd: unable to unmap MFN range: leaking 1 pages. rc=-2 Is it normal that Linux is trying to unmap a page that has failed to map ealier? Sincerely yours, -- Julien Grall