Я использую гостевую систему Linux поверх qemu -enable-kvm.Я пытаюсь создать обратный канал между Linux и QEMU, используя известную область физической памяти.Чтобы использовать адрес памяти, который ядро никогда никому не выделит, я запустил гостя с использованием физической памяти 1024M.В гостевой, я пытаюсь получить доступ к 2 ГБ th (2 *1024* 1024 * 1024).При перекомпиляции ядра я не могу снова загрузиться в новом ядре.
мой код выглядит следующим образом ..
/** in context_switch() function of kernel/sched.c */
#define PID_ADDR ((int *)((unsigned long)2 * (unsigned long)1024 * (unsigned long)1024 * (unsigned long)1024))
int* pid_addr = phys_to_virt(PID_ADDR);
*pid_addr = next->pid //next is the task-struct ptr of the next process that is going to run.
может объяснить мне, как kvm использует физическую память, выделенную для гостя ??