Hi,
I have a Kernel Mode Linux running(KML). I can access kernel
virtual addresses using User Programs. I wanted to get hold of upper Kernel
memory (beyond 0xff800000 till 0xffffffff) and experiment a bit. To achieve the
same I requested for a memory hole in "start_kernel" of /init/main.c as follows:
.....
printk(linux_banner);
setup_arch(&command_line);
//ask for 8 MB topmost
reserve_top_address(8388608ul);
mm_init_owner(&init_mm, &init_task);
setup_command_line(command_line);
.....
The kernel image din't boot up. I might be reserving at the wrong place in code
or I might be carelessly doing something impossible. On a black screen I got
the following error:
BUG: Int 6: CR2 00000000
EDI C03f5000 ESI 00800000 ......
EBX .....
err 00000000 ...
Stack: 00010800 ....
......
......
Is there anywhere else I can plug in the "reserve_top_address" and play with the
kernel space memory ? Certain hypervisors would be doing similar trick but I am
not so sure how.
Any help would be helpful.
Regards,
Regmee
I have a Kernel Mode Linux running(KML). I can access kernel
virtual addresses using User Programs. I wanted to get hold of upper Kernel
memory (beyond 0xff800000 till 0xffffffff) and experiment a bit. To achieve the
same I requested for a memory hole in "start_kernel" of /init/main.c as follows:
.....
printk(linux_banner);
setup_arch(&command_line);
//ask for 8 MB topmost
reserve_top_address(8388608ul);
mm_init_owner(&init_mm, &init_task);
setup_command_line(command_line);
.....
The kernel image din't boot up. I might be reserving at the wrong place in code
or I might be carelessly doing something impossible. On a black screen I got
the following error:
BUG: Int 6: CR2 00000000
EDI C03f5000 ESI 00800000 ......
EBX .....
err 00000000 ...
Stack: 00010800 ....
......
......
Is there anywhere else I can plug in the "reserve_top_address" and play with the
kernel space memory ? Certain hypervisors would be doing similar trick but I am
not so sure how.
Any help would be helpful.
Regards,
Regmee