Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Mar 2001 13:25:40 -0800 (PST)
From:      John Baldwin <john@baldwin.cx>
To:        John Baldwin <jhb@FreeBSD.ORG>
Cc:        Andrew Gallatin <gallatin@cs.duke.edu>, ia64@FreeBSD.ORG, Doug Rabson <dfr@nlsystems.com>
Subject:   Re: Grrrr..
Message-ID:  <XFMail.010305132540.john@baldwin.cx>
In-Reply-To: <XFMail.010304151628.jhb@FreeBSD.org>

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


On 04-Mar-01 John Baldwin wrote:
> 
> On 03-Mar-01 Doug Rabson wrote:
>> On Fri, 2 Mar 2001, John Baldwin wrote:
>> 
>>>
>>> On 02-Mar-01 Andrew Gallatin wrote:
>>> >
>>> > Doug Rabson writes:
>>> >  >
>>> >  > I remember now. I always intended to redo pmap_map() via the
>>> >  > direct-mapped
>>> >  > segments. This saves kernel virtual address space (of which there is
>>> >  > plenty) but more importantly saves TLB entries and on ia64 VHTP
>>> >  > entries. I
>>> >  > just hacked up this patch which isn't tested on anything but I think
>>> >  > its
>>> >  > on the right lines. Beware of conflicts - Drew Gallatin is working in
>>> >  > this
>>> >  > area.
>>> >  >
>>> >
>>> > I'm done now (and your latest patch at the top of this thread
>>> > incorporates my committed changes).
>>> >
>>> > I really like using the direct-mapped segment for this.
>>>
>>> I'm going to test this out on my alpha and i386 test boxes here at work.
>>> If it works there, I think it should probably be committed.  Not that I
>>> am overwhelmed with pmap Clue atm. :)
>> 
>> I would appreciate it if you could test on i386 since I'm not currently in
>> a position to to i386 kernel work. It certainly appears to work on ia64
>> and I don't expect problems on alpha (I'll probably test that myself
>> shortly though).
> 
> Alpha booted ok.  The i386 patch had a typo, but it hung when I rebooted it
> with the new kernel.  I may drive in today to try and fix it, but I may not
> get
> to it until tomorrow. :-P
> 
> The patch I'm using now is at ~jhb/public_html/patches/pmap.patch on
> freefall.
> The only changes are removing one register keyword from vm_page_startup() to
> quiet a warning and fixing a typo (virtp -> virt) in the i386 diff.

Well, it (i386) died during the syscons init just after printing the copyright.
The trace looks like this:

pmap_insert_entry(0xc036db00, 0xc0a7200)
pmap_enter(0xc036db00, 0xc0a7200)
kmem_malloc()
malloc()
sc_vtb_init()
sc_alloc_scr_buffer()
scmeminit()
mi_startup()
begin()

The panic faulting address was 0x12342378.

db> x/x 0xc036db00
c0585000
db> x 0xc0585000
0
db> x 0xc0a72000

kernel page fault...
fault virtual address   = 0x12342378 (same address)
etc.

curproc is NULL still, so this is quite early.
(before cpu_startup finishes at least)

This is very easy to reproduce, so I can offer more details if needed.  I've
tried looking at the changes you made and I don't see why it would break.  I
even checked to make sure 'vaddr == page_round(vaddr)' after the first call to
pmap_map() (which it should and did).  I'm a bit out of ideas at this point
however. :(

-- 

John Baldwin <john@baldwin.cx> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ia64" in the body of the message



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010305132540.john>