Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Apr 2008 16:46:14 -0700
From:      Peter Grehan <grehan@freebsd.org>
To:        Marcel Moolenaar <xcllnt@mac.com>
Cc:        freebsd-ppc@freebsd.org
Subject:   Re: kernel stacks [eas: Re: G5 Bridge-mode MMU]
Message-ID:  <48053E46.4090700@freebsd.org>
In-Reply-To: <058EEFE3-09D7-447A-93AB-3E90EC59ECDC@mac.com>
References:  <4804AE13.2060600@uchicago.edu> <4804C9E9.6010303@freebsd.org> <5CC81F06-7B59-4163-9AB8-2ACE4235A5AA@mac.com> <4804DD02.10304@freebsd.org> <058EEFE3-09D7-447A-93AB-3E90EC59ECDC@mac.com>

index | next in thread | previous in thread | raw e-mail

Hi Marcel,

> the not mapping means that the CPU couldn't find the
> translation in its TLB nor in the hash table. The exception code treats
> this as a kernel stack overflow.

  Are you sure it isn't a genuine stack overflow ? You may be able to 
tell by bumping the size of tmpstk on a non-kstack0 boot and see how far 
up it's been used.

  The stack mappings are put into the hash table, and a panic will be 
issues if it can't be placed into the primary or secondary buckets.

>> Stack *overflow* exception handling may be busted, but that is a 
>> challenging problem to get right.
> 
> The logic currently assumes that there's never a DSI trap for the kernel
> stack. This simply is an invalid assumption.

  As above, it is, since wired mappings are never kicked out of their 
hash bucket.

>>> Also, with process address space limited to 2G
>>
>> Where's that limitation ? If so, that's a bug: it should be 4G.
> 
> vmparam.h:    #define VM_MAXUSER_ADDRESS 0x7ffff000

  Ah yes, that's an easy one to fix :)

later,

Peter.




home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48053E46.4090700>