Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 08 Jul 2002 13:52:48 -0700
From:      Peter Wemm <peter@wemm.org>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        current@freebsd.org
Subject:   Re: Remember my ill-fated i386 smp pmap optimizations? 
Message-ID:  <20020708205248.6D4EC3808@overcee.wemm.org>
In-Reply-To: <XFMail.20020708152756.jhb@FreeBSD.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote:
> 
> On 08-Jul-2002 Peter Wemm wrote:
> > A few months ago, I had a bit of a disaster with some pmap optimizations.
> > After committing, all hell broke loose.  It was backed out completely.
> > 
> > I finally found the problem (diff cleaned up to highlight the problem):
> > 
> > pmap_mapdev()
> > ...
> >         for (tmpva = va; size > 0; ) {
> >                 pte = vtopte(tmpva);
> >                 *pte = pa | PG_RW | PG_V | pgeflag;
> >                 size -= PAGE_SIZE;
> >                 tmpva += PAGE_SIZE;
> > -               pa += PAGE_SIZE;
> >         }
> >         invltlb();
> > 
> > Excuse me while I go outside and shoot myself.
> 
> Hahahaha!
> 
> Glad to see you have fixed them. :)

Unfortunately, there are still more problems. :-(

I have found some of them.  And what is really scary is that I have
verified that some of what Terry has been FUD'ing(*) about for our TLB
(mis)management is actually correct. :-(  We have code that simply will not
work (ie: vm86 will explode when doing VESA calls) if certain accidental
conditions that mask the bugs no longer occur.

I've still got to find this one though:

TPTE at 0xbfca01f0  IS ZERO @ VA 2807c000
panic: bad peter

db> trace
panic(c043087f,bfca01f0,2807c000,1,c040e9d7) at panic+0x84
pmap_remove_pages(c15d6ed0,0,bfc00000,115,c028aee0) at pmap_remove_pages+0x9c
exit1(c15d5180,8b,c6,c24a0d04,0) at exit1+0x4f0
sigexit(c15d5180,b,c040fbb1,6e9,0) at sigexit+0x1b9
postsig(b,0,c0413100,e4,400) at postsig+0x11b
ast(d3aa5d48) at ast+0x328
doreti_ast() at doreti_ast+0x1a

This also happens from a plain exit() syscall.

Cheers,
-Peter
--
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5


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




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