WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Xen

xen-devel

[Top] [All Lists]

Re: [Xen-devel] Problem setting up a custom GDT

To: Simon Kagstrom <simon.kagstrom@xxxxxx>
Subject: Re: [Xen-devel] Problem setting up a custom GDT
From: Mathieu Ropert <mro@xxxxxxxxxx>
Date: 2006年6月09日 13:07:02 +0200
Cc: xen-devel list <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: 2006年6月12日 01:39:05 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <8764jalhgb.wl%simon.kagstrom@xxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <8764jalhgb.wl%simon.kagstrom@xxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)
Simon Kagstrom wrote:
Hello!
I have some problems setting up a custom GDT (I need one where the
code is readable). Anyway, I try to switch to my own GDT as follows:
 unsigned long frames[16];
 volatile unsigned long va = (unsigned long)GDT;
 volatile unsigned long pa = to_phys(va);
 volatile unsigned long ma = phys_to_machine(pa) & ~_PAGE_RW | _PAGE_PRESENT 
| _PAGE_ACCESSED | _PAGE_DIRTY;
 /* Make it read-only */
 HYPERVISOR_update_va_mapping(va, (pte_t){ ma }, 0);
 frames[0] = ma;
 int ret = HYPERVISOR_set_gdt(frames, 16);
(The GDT Is just copied from Linux' right now). When doing this, I
always get -EINVAL from set_gdt, which I suspect is because
HYPERVISOR_update_va_mapping for some reason does not succeed in
setting the page read-only.
I've checked the Linux implementation, and it does basically the same
thing (pte_wrprotect() on the machine-address before calling
update_va_mapping). Does anyone see what is wrong here?
// Simon
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
The machine address you pass to Xen is a page table entry. Xen want a machine frame number.
frames[0] = ma >> PAGE_SHIFT;
should fix you problem.
Mathieu
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
Previous by Date: Re: [Xen-devel] Announcing OpenBSD/amd64 Xen port , Mathieu Ropert
Next by Date: [Xen-devel] CfP Workshop on XEN in HPC Cluster and Grid Computing Environments (XHPC) , Marcus Hardt
Previous by Thread: Re: [Xen-devel] Problem setting up a custom GDT , Keir Fraser
Next by Thread: Re: [Xen-devel] Problem setting up a custom GDT , Simon Kagstrom
Indexes: [Date] [Thread] [Top] [All Lists]

Copyright ©, Citrix Systems Inc. All rights reserved. Legal and Privacy
Citrix This site is hosted by Citrix

AltStyle によって変換されたページ (->オリジナル) /