Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: ia64 and emap
Hi! Mindaugas,
From: Mindaugas Rasiukevicius <rmind%netbsd.org@localhost>
Date: Mon, 13 Jul 2009 11:57:10 +0100
> > panic: kernel diagnostic assertion "IA64_RR_MASK(va) < (nkpt * PAGE_SIZE *
> > NKPTEPG)" failed: file "../../../../arch/ia64/ia64/pmap.c", line 1714
> > Broken into debugger
> >
> > <...>
> >
> > Stopped in pid 0.1 (system) at netbsd:cpu_Debugger+0x21: [I1]
> > nop.i 0x
>
> Do you have a backtrace?
Ooops. We have not implement command 'bt' yet. ;-)
It will speak information without the meaning...
> > The emap demands quite a lot of memories. Therefore, more nkpt is
> > necessary for us. Do we have the processes to know size of emap
> > (uvm_emap_size)?
>
> It looks that you are running out of KVA. Is that right? Perhaps
> decreasing the following in uvm_emap.c would help:
We map the kernel and some memories to the kernel page tables at boot
time.
This calculates the size that the kernel uses. The kernel region doesn't
do all maps. Therefore, if emap demands 128MB, 128MB will have to be
added.
nkpt = (((ubc_nwins << ubc_winshift) + (128*1024*1024) +
/*^^^^^^^^^^^^^*/
bufsz + 16 * NCARGS + pager_map_size) / PAGE_SIZE +
USRIOSIZE + (maxproc * UPAGES) + nkmempages) / NKPTEPG;
For instance, the meaning cannot be understood in this case at all.
However, this can be understood.
nkpt = (((ubc_nwins << ubc_winshift) + uvm_emap_size +
/*^^^^^^^^^^^^^*/
bufsz + 16 * NCARGS + pager_map_size) / PAGE_SIZE +
USRIOSIZE + (maxproc * UPAGES) + nkmempages) / NKPTEPG;
> > -static u_int uvm_emap_size = UVM_EMAP_SIZE;
> > +u_int uvm_emap_size = UVM_EMAP_SIZE;
>
> Why do you want to make it global?
We were able to obtain ubc_nwins and ubc_winshift. Can we obtain
uvm_emap_size?
Thanks,
--
kiyohara
Home |
Main Index |
Thread Index |
Old Index