| 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] |