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 messagehome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010305132540.john>
