Subject: Question concerning memory initialization (4M->64M)

From: Jeff Harrell <[email-masked]>
Date: Wed, 09 Feb 2000 13:35:58 -0700

I have run into an interesting problem and would like to run it past
this newsgroup
to see if anyone has any experience in these areas.  I am running kernel
2.3.22 and
have upgraded my memory space from ~4M (0x400000) to ~64M (0x4000000).
I run the 4M
version of the kernel and have no problems but when I run the 64M
version, I run
into problems during the mem_init() portion of the code.  Specifically
during the
free_page(tmp) call during the determination of totalram, codepages and
datapages.
It looks like it is failing during the call to remove_mem_queue() within
free_pages_ok().
I am seeing the next->prev and prev->next  set to 0 causing a page
fault.   Is there
anything that anyone is aware of that I would need to change (beyond
mips_memory_upper)
that would enable me to increase available memory to 64M.  Any insights
would be greatly appreciated.

Thanks
Jeff

Additional information:
------------------

high memory: 0x83fff000  start memory: 0x80433000

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jeff Harrell                    Work:  (801) 619-6104
Broadband Access group/TI
[email-masked]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

---

From: Ralf Baechle <[email-masked]>
Date: Thu, 10 Feb 2000 17:15:33 +0100

On Wed, Feb 09, 2000 at 01:35:58PM -0700, Jeff Harrell wrote:

> I have run into an interesting problem and would like to run it past this
> newsgroup to see if anyone has any experience in these areas.  I am
> running kernel 2.3.22 and have upgraded my memory space from ~4M
> (0x400000) to ~64M (0x4000000).  I run the 4M version of the kernel and
> have no problems but when I run the 64M version, I run into problems
> during the mem_init() portion of the code.  Specifically during the
> datapages.  It looks like it is failing during the call to
> remove_mem_queue() within free_pages_ok().  I am seeing the next->prev and
> prev->next set to 0 causing a page fault.

The free pages are being stored in a circular list, so struct page of a free
page should never have prev or next set to zero.  Smells like memory
corruption.

> Is there anything that anyone is aware of that I would need to change
> (beyond mips_memory_upper) that would enable me to increase available
> memory to 64M.  Any insights would be greatly appreciated.

That alone should be sufficient.

> Additional information:

I assume these are the values of start_mem and mem_end as passed to
mem_init()?  In that case these values look sane.

  Ralf