vishmohan / vmlaunch Goto Github PK
View Code? Open in Web Editor NEWSimple Driver code for vmlaunch
Simple Driver code for vmlaunch
restore_registers() is missing in init, causing Kernel Oops, 'cause the stack and registers are not clean for epilogue !
SYSENTER_ESP_MSR is 0x175
SYSENTER_EIP_MSR is 0x176
In Linux-3.2, it will hit a panic as follows,
(E1)[ 609.145249] In vmxon
(E1)[ 609.148662] VMX supported CPU.
(E4)[ 609.153040] MSR 0x3A:Lock bit is on.VMXON bit is on.OK
(E1)[ 609.159642] turned on cr4.vmxe
(E1)[ 609.164028] Doing vmlaunch now..
(E1)[ 609.168594] After vmexit
(E1)[ 609.172373] Guest VMexit reason: 0x12
(E1)[ 609.177419] Machine in vmxon: Attempting vmxoff
(E1)[ 609.183433] vmxoff complete
(E1)[ 609.187510] turned off cr4.vmxe
(E1)[ 609.191976] freeing allocated vmcs region!
(E1)[ 609.197508] freeing allocated io bitmapA region!
(E1)[ 609.203620] freeing allocated io bitmapB region!
(E1)[ 609.209731] freeing allocated msr bitmap region!
(E1)[ 609.215843] freeing allocated virtual apic page region!
(E1)[ 609.222631] freeing allocated vmxon region!
(E1)[ 609.228258] Enable Interrupts
(E1)[ 609.232531] Done
(E4)[ 609.235553] initcall 0xffff88343fc4ffff returned with preemption imbalance disabled interrupts
(E0)[ 609.246128] ------------[ cut here ]------------
(E2)[ 609.252142] kernel BUG at /var/src/linux-3.2/mm/vmalloc.c:1485!
(U0)(MSG-KERN-00005):[ 609.263094] invalid opcode: 0000 [#1] SMP
(E4)[ 609.330001] Pid: 13849, comm: insmod Tainted: P O 3.2.33 #4
(E4)[ 609.343215] RIP: 0010:[] [] vfree+0x20/0x2e
(E4)[ 609.352344] RSP: 0018:ffff8817ceeebf28 EFLAGS: 00010206
(E4)[ 609.359132] RAX: 000000000000ffff RBX: ffffffffa0068100 RCX: 0000000081000000
(E4)[ 609.367953] RDX: 0000000000000000 RSI: ffffffffa008d000 RDI: ffffffffa008d000
(E4)[ 609.376774] RBP: ffff8817ceeebf28 R08: 0000000000000000 R09: ffffffff816382a8
(E4)[ 609.385595] R10: ffff88184eeebe27 R11: 0000000000503030 R12: 0000000000000000
(E4)[ 609.394417] R13: 0000000000503030 R14: 0000000000000000 R15: 0000000000000000
(E4)[ 609.403240] FS: fffffffff9c136e0(0000) GS:ffff88343fc40000(0000) knlGS:0000000000000000
(E4)[ 609.413126] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
(E4)[ 609.420399] CR2: 00007fcbf99940f0 CR3: 0000002b3c553000 CR4: 00000000001407e0
(E4)[ 609.429219] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
(E4)[ 609.438041] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
(E4)[ 609.446865] Process insmod (pid: 13849, threadinfo ffff8817ceeea000, task ffff8817ce9d8000)
(E0)[ 609.457041] Stack:
(E4)[ 609.460151] ffff8817ceeebf38 ffffffff81068c16 ffff8817ceeebf78 ffffffff8106aa8c
(E4)[ 609.469308] 0000000000503010 000000000001ec15 0000000000000000 0000000000401cc0
(E4)[ 609.478469] 0000000000400dc0 00007fff256b79f0 00007fff256b7910 ffffffff813afb2b
(E0)[ 609.487627] Call Trace:
(E4)[ 609.491224] [] module_free+0x11/0x1e
(E4)[ 609.497911] [] sys_init_module+0x18b/0x1d0
(E4)[ 609.505179] [] system_call_fastpath+0x16/0x1b
(E0)[ 609.512732] Code: 18 4c 89 e0 5b 41 5c 41 5d c9 c3 55 48 89 e5 0f 1f 44 00 00 65 48 8b 04 25 48 b6 00 00 48 63 80 44 e0 ff ff a9
00 ff ff 07 74 02 <0f> 0b be 01 00 00 00 e8 80 fe ff ff c9 c3 55 48 89 e5 41 57 41
(U1)(MSG-KERN-00005):[ 609.535285] RIP [] vfree+0x20/0x2e
(E4)[ 609.543440] RSP
(E4)[ 609.548201] ---[ end trace 93b483d31dfc8aad ]---
(U0)(MSG-KERN-00018):[ 609.554218] Kernel panic - not syncing: Fatal exception in interrupt
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.