virtualization

Do x86 instructions require their own encoding as well as all of their arguments to be present in memory at the same time?

有些话、适合烂在心里 提交于 2020-07-27 09:26:08
问题 I am trying to figure out whether it is possible to run a Linux VM whose RAM is only backed by a single physical page. To simulate this, I modified the nested page fault handler in KVM to remove the present bit from all nested page table (NPT) entries, except the one corresponding to the currently processed page fault. While trying to start a Linux guest, I observed that assembly instructions that use memory operands, like add [rbp+0x820DDA], ebp lead to a page fault loop until I restore the

KVM shadow page table handling in x86 platform

懵懂的女人 提交于 2020-05-10 03:24:22
问题 From what I understand, on processors that doesn't have hardware support for guest virtual to host physical address translation KVM uses the shadow page table. Shadow page table is built and updated when the guest OS modifies its page tables. Are there special instructions in the hardware (let’s take x86 for reference) for modifying the page table? Unless there are special instructions there won't be a trap to the VMM. Isn't the page table maintained in software by the Linux kernel just

KVM shadow page table handling in x86 platform

a 夏天 提交于 2020-05-10 03:22:18
问题 From what I understand, on processors that doesn't have hardware support for guest virtual to host physical address translation KVM uses the shadow page table. Shadow page table is built and updated when the guest OS modifies its page tables. Are there special instructions in the hardware (let’s take x86 for reference) for modifying the page table? Unless there are special instructions there won't be a trap to the VMM. Isn't the page table maintained in software by the Linux kernel just

KVM shadow page table handling in x86 platform

一个人想着一个人 提交于 2020-05-10 03:22:04
问题 From what I understand, on processors that doesn't have hardware support for guest virtual to host physical address translation KVM uses the shadow page table. Shadow page table is built and updated when the guest OS modifies its page tables. Are there special instructions in the hardware (let’s take x86 for reference) for modifying the page table? Unless there are special instructions there won't be a trap to the VMM. Isn't the page table maintained in software by the Linux kernel just

Why does `/proc/meminfo` show 32GB when AWS instance has only 16GB?

心已入冬 提交于 2020-05-08 15:40:48
问题 I wanted to log the total amount of memory (alternatively: used memory by the current process and available memory for the current process) of the currently running instance and used /proc/meminfo : info = { i.split()[0].rstrip(":"): int(i.split()[1]) for i in open("/proc/meminfo").readlines() } total_m = info["MemTotal"] When I run it locally, it does what I expect. When I run it on a 16GB AWS instance in a Docker container it shows 32GB. Why is that the case? (Side question: How should this

Why does `/proc/meminfo` show 32GB when AWS instance has only 16GB?

淺唱寂寞╮ 提交于 2020-05-08 15:40:08
问题 I wanted to log the total amount of memory (alternatively: used memory by the current process and available memory for the current process) of the currently running instance and used /proc/meminfo : info = { i.split()[0].rstrip(":"): int(i.split()[1]) for i in open("/proc/meminfo").readlines() } total_m = info["MemTotal"] When I run it locally, it does what I expect. When I run it on a 16GB AWS instance in a Docker container it shows 32GB. Why is that the case? (Side question: How should this

Why does `/proc/meminfo` show 32GB when AWS instance has only 16GB?

主宰稳场 提交于 2020-05-08 15:39:12
问题 I wanted to log the total amount of memory (alternatively: used memory by the current process and available memory for the current process) of the currently running instance and used /proc/meminfo : info = { i.split()[0].rstrip(":"): int(i.split()[1]) for i in open("/proc/meminfo").readlines() } total_m = info["MemTotal"] When I run it locally, it does what I expect. When I run it on a 16GB AWS instance in a Docker container it shows 32GB. Why is that the case? (Side question: How should this

Host Only connection NetBSD to Windows

强颜欢笑 提交于 2020-02-05 08:38:11
问题 I have NetBSD-4.0.1-x68k installed as a guest virtual machine on Windows (using the XM6i 68030 emulator for windows 7). I am trying to setup a host only connection on the NetBSD guest. However, I can't ping the guest from the host unless I run: tcpdump -i ne0 #executed on guest ping 192.168.2.17 #executed on host ping 192.168.2.1 #executed on guest Right after I run these commands in that order I can continue to ping successfully ...but not forever, after a certain point I am unable to ping

Host Only connection NetBSD to Windows

本小妞迷上赌 提交于 2020-02-05 08:38:06
问题 I have NetBSD-4.0.1-x68k installed as a guest virtual machine on Windows (using the XM6i 68030 emulator for windows 7). I am trying to setup a host only connection on the NetBSD guest. However, I can't ping the guest from the host unless I run: tcpdump -i ne0 #executed on guest ping 192.168.2.17 #executed on host ping 192.168.2.1 #executed on guest Right after I run these commands in that order I can continue to ping successfully ...but not forever, after a certain point I am unable to ping

Running a VM on Windows 8 without disabling Hyper V

ぐ巨炮叔叔 提交于 2020-02-01 05:30:27
问题 I know, there is a bigger discussion about this topic, but currently I did'nt find a good solution for this issue. First: I got a Windows 8.1 host system that uses Hyper V to run the Windows Phone 8 Emulator. I also would like to run a virtual machine on this system (VirtualBox, VMWare, whatever works). The solutions I know: Hyper V Manager to set up a virtual machine (e.g. a UNIX-system) Hyper V is made for server environments, so there are no USB and sound drivers. The usage of bcdedit.exe