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/
Home Products Support Community News


[Xen-devel] xen and cr0,cr3,cr4

To: xen-devel@xxxxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] xen and cr0,cr3,cr4
From: Adam Sulmicki <adam@xxxxxxxxxxxx>
Date: Sun, 28 Nov 2004 11:33:01 -0500 (EST)
Delivery-date: Sun, 28 Nov 2004 20:14:43 +0000
Envelope-to: xen+James.Bulpin@xxxxxxxxxxxx
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
        As I understand _writing_ cr{0,3,4} would be privileged
        operationg. However, I would tend to think that _reading_ them
        should be not.

        It seems like I'm getting ooops when I'm trying to read CRx
        under linux in dom0 under xen.

        Is that indeed case?

        If yes, I suppose I can somehow get around this using hypercalls
        from inside of xenolinux dom0.

Entering PAGE module -- init_module():start
$Id: page-init.c,v 1.4 2004/11/27 21:36:11 sulmicki Exp sulmicki $
Entering memory_map().
PAGE OFFSET    : 0xC0000000 = 3GiB
CPUID(EAX=1)EDX: 0x0383FBFF = 0000 0011 1000 0011 1111 1011 1111 1111  : 'PSE'
About to read CR0
general protection fault: 0000 [#2]
Modules linked in: pagemap_2 pagemap_1 ds yenta_socket pcmcia_core e100
CPU:    0
EIP:    0061:[<c4850142>]    Not tainted
EFLAGS: 00013297   (
EIP is at my_show_regs+0x2f/0x101 [pagemap_2]
eax: ffffff82   ebx: c0336778   ecx: 0007a11f   edx: ffffff82
esi: c4851000   edi: c2e36000   ebp: 00000000   esp: c2e37f30
ds: 0069   es: 0069   ss: 0069
Process insmod (pid: 9356, threadinfo=c2e36000 task=c13ee6b0)
Stack: c4850a04 c0336778 c0336778 c4850258 00000001 c0000000 00000003 c2e37f58
       c02ee921 00000000 ffffffba c011d8b0 00000000 000018c8 c03ac103 00000000
       00000043 c0336760 c011d6f4 0000000a 00000400 c4850864 c0336778
Call Trace:
 [<c4850258>] memory_map+0x44/0x620 [pagemap_2]
 [<c02ee921>] preempt_schedule+0x29/0x42
 [<c011d8b0>] release_console_sem+0x113/0x12d
 [<c011d6f4>] printk+0x148/0x1ad
 [<c4850027>] init_module+0x27/0x39 [pagemap_2]
 [<c0133b40>] sys_init_module+0x115/0x25e
 [<c010d52b>] syscall_call+0x7/0xc

Code: 0f 20 c3 89 d0 e6 80 e6 80 83 e9 01 79 f5 c7 04 24 17 0a 85
    printk("About to read CR0\n");
    for (i=0;i<500000;i++) outb_p(0x82,0x80);
    __asm__("movl %%cr0, %0": "=r" (cr0));
    for (i=0;i<500000;i++) outb_p(0x82,0x80);
    printk("Just read CR0\n");
Linux redbull #9 Sun Oct 31 11:05:07 MST 2004 i686 i686 i386 

SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>