amit regmi
2008-Aug-31 03:48 UTC
[Xen-devel] Re: "reserve_top_address" and the kernel virtual memory with KML.
On Sat, Aug 30, 2008 at 10:38 PM, Peter Teoh <htmldeveloper@gmail.com>wrote:> > On Sat, Aug 30, 2008 at 1:13 PM, amit regmi <regmi.amit@gmail.com> wrote: >> > 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); > > >Probably this was too early to have called "reserve_top_address" . I tried shifting this call to the place right before the mem_init() in the same function. vfs_caches_init_early(); cpuset_init_early(); //ask for 8 MB topmost reserve_top_address(8388608ul); mem_init(); enable_debug_pagealloc(); This time I got a kernel panic instead and the error said "unknown_bootoption+0x0/0x1f0". according to:> > http://www.ussg.iu.edu/hypermail/linux/kernel/0806.2/2629.html > > it seemed to indicate that the minimum size for reservation (for > purpose of hypervisor implementation) is 128M. So could that be the > reason why 8MB is not possible?I think it says that the default 128 MB size allocated for "vmalloc" can be altered with the "size" parameter. Again, reserve_top_address also has an impact on the amount of memory given to vmalloc as it resizes the __VMALLOC_RESERVE parameter. I am sure it 128M could be a thing to try out.> > > 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. >Google says Xen makes use of "reserve_top_address". May be they can help. -Regmee _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
amit regmi
2008-Aug-31 04:59 UTC
[Xen-devel] Re: "reserve_top_address" and the kernel virtual memory with KML.
128M did not help either. Got the same kernel panic with error "unknown_bootoption+0x0/0x1f0" On Sat, Aug 30, 2008 at 11:48 PM, amit regmi <regmi.amit@gmail.com> wrote:> On Sat, Aug 30, 2008 at 10:38 PM, Peter Teoh <htmldeveloper@gmail.com>wrote: > >> >> On Sat, Aug 30, 2008 at 1:13 PM, amit regmi <regmi.amit@gmail.com> wrote: >> > >> > 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); >> > >> > Probably this was too early to have called "reserve_top_address" . > I tried shifting this call to the place right before the mem_init() in the > same function. > > vfs_caches_init_early(); > cpuset_init_early(); > > //ask for 8 MB topmost > reserve_top_address(8388608ul); > > mem_init(); > enable_debug_pagealloc(); > > This time I got a kernel panic instead and the error said > "unknown_bootoption+0x0/0x1f0". > > according to: >> >> http://www.ussg.iu.edu/hypermail/linux/kernel/0806.2/2629.html >> >> it seemed to indicate that the minimum size for reservation (for >> purpose of hypervisor implementation) is 128M. So could that be the >> reason why 8MB is not possible? > > > I think it says that the default 128 MB size allocated for "vmalloc" can > be altered with the "size" parameter. > Again, reserve_top_address also has an impact on the amount of memory given > to vmalloc as it resizes the > __VMALLOC_RESERVE parameter. I am sure it 128M could be a thing to try > out. > >> >> > 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. >> > > Google says Xen makes use of "reserve_top_address". May be they can help. > > -Regmee >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel