All of lore.kernel.org
 help / color / mirror / Atom feed
* mmu_update doesn't work well in writable page table mode??
@ 2007-02-28 11:39 Hwandori
  0 siblings, 0 replies; only message in thread
From: Hwandori @ 2007-02-28 11:39 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 3136 bytes --]

Current Xen takes the writable page table mode as a default, and I tried to
modify the page table mapping(V-M) using the mmu_update hypercall(or
update_va_mapping).

As a result of searching the related maling list archives, I get know about
conflicts of combining the writable page table and mmu_update hypercall.

What I have done are updating guest's page table mapping(V-M) , physical to
machine table, and machine to physical table(also using mmu_update).

Problem occurs during the mount of root filesystem, in detail , it occurs
while pinning the page directory(L2 table) with calling xen_pgd_pin
function.

I found the things related about l2 or l1 table pinning , writable page
table , and updating mapping via hypercall, but I don't know the solutions
of this problem..

To help to understand, I posted the error message at guest kernel below.
-------------------------------------------------------------------------------------------------------------------------------------------------------
kernel BUG at arch/i386/mm/hypervisor.c:186!
invalid opcode: 0000 [#1]
Modules linked in: ide_generic processor xenblk
CPU:    0
EIP:    0061:[<c0114365>]    Not tainted VLI
EFLAGS: 00010282   (2.6.16.33-xen #31)
EIP is at xen_pgd_pin+0x55/0x60
eax: ffffffea   ebx: c0059ef8   ecx: 00000001   edx: 00000000
esi: 00007ff0   edi: 00000000   ebp: 01200011   esp: c0059ef8
ds: 007b   es: 007b   ss: 0069
Process init (pid: 1, threadinfo=c0058000 task=c11fda90)
Stack: <0>00000001 0002384b 00000000 00019460 00000000 c0111174 c738bb74
c0117fb0
       c738ba84 c037b4ec c037fe40 c722e030 c037fe74 c037f934 c722e0e4
c0059fbc
       bf9903a8 00000000 c722e030 c037f900 c738bb80 c738bb94 c738bb8c
00000000
Call Trace:
 [<c0111174>] __pgd_pin+0x24/0x30
 [<c0117fb0>] copy_process+0x1080/0x1120
 [<c011830e>] do_fork+0x6e/0x1e0
 [<c01158f0>] default_wake_function+0x0/0x10
 [<c0103362>] sys_clone+0x32/0x40
 [<c01051a1>] syscall_call+0x7/0xb
-----------------------------------------------------------------------------------------------------------------------------------------------------

And the following log is from 'xm dmesg'
-----------------------------------------------------------------------------------------------------------------------------------------------------
(XEN) mm.c:1664:d1 Bad type (saw e8000001 != exp 20000000) for mfn 2c300
(pfn fb4)
(XEN) mm.c:505:d1 Attempt to create linear p.t. with write perms
(XEN) mm.c:976:d1 Failure in alloc_l2_table: entry 766
(XEN) mm.c:1685:d1 Error while validating mfn 2384b (pfn ca3) for type
40000000: caf=80000003 taf=40000001
(XEN) mm.c:1962:d1 Error while pinning mfn 2384
-----------------------------------------------------------------------------------------------------------------------------------------------------

At the first line, mfn 2c300 is the mfn that I updated, so I don't know why
this mfn is regarded as l1 page table, in spite of the fact that this mfn is
of writable page(not page table).

I'd like to know the problems when updating the memory mappings via
hypercall(mmu_update) at the writable page table mode, and the solutions
about it.

thanks.

[-- Attachment #1.2: Type: text/html, Size: 3597 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-02-28 11:39 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-28 11:39 mmu_update doesn't work well in writable page table mode?? Hwandori

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.