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

Reply via email to