Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Aug 2002 15:21:34 -0700
From:      Peter Wemm <peter@wemm.org>
To:        Martin Blapp <mb@imp.ch>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: Hurrah ! Re: cvs commit: src/sys/i386/isa apic_vector.s 
Message-ID:  <20020823222134.33F582A7D6@canning.wemm.org>
In-Reply-To: <20020824000117.M50084-100000@levais.imp.ch> 

next in thread | previous in thread | raw e-mail | index | archive | help
Martin Blapp wrote:
> 
> 
> Hi Peter !
> 
> >   Ok, somebody please shoot me.  The asm I wrote for the ranged IPI shootdo
    wn
> >   was wrong.  It only ever invalidated one page due to me getting the loop
> >   terminator wrong.  This explains the DISABLE_PG_G effect on SMP.
> 
> Also viewable on UP ? This is not a UP machine. Should this fix
> also make the effect on UP machines disappear ?

No, but I have another patch that I'd like you to test shortly.  I need
to do a couple more sanity checks to make sure it doesn't break SMP.  It
works on my laptop.  It *might* just happen solve the pentium4 UP problems.
Note that it is not directly related to pentium4 bugs but tries to solve
some other dubious problems.

If you are feeling brave, you may like to try this early:
http://people.freebsd.org/%7Epeter/4mb.diff
I'm pretty sure it is ok on UP, but it might make SMP explode during
AP startup as I've not yet finished untangling the hacks.

What it does is this:
- Move the default load address of the kernel from 1MB to 4MB.
- This avoids having a 4MB page pointing at physical address zero, which
  some early intel errata say is a Bad Idea which causes strange TLB bugs.
- This means we can undo a bunch of hacks to temporarily disable or defer 4MB
  mode during SMP startup. XXX not yet finished for the SMP case.
- It should solve the ppro startup bugs we had in a non-hackish fashion.
- It now puts ALL of the kernel in as many 4MB pages as are needed. Previously
  only the first 3MB would fit and the rest would run from 4K pages.

If it happens to solve the Pentium4 problems, then that would be a bonus.
Given that disabling PSE mode seems to have some effect, tidying this up
just might do something useful here.

Yes, it is configurable so that this doesn't absolutely rule out running
a tiny stripped down kernel on a 4MB machine.  (fat chance of it being
possible, but I wont be the one to guarantee it not working :)

I've also considered the possibility that we may need to set up the
initial page table in locore in 4MB mode to truely avoid the overlapping
4K/4M tlb issues.  At least the underlying 4K pages do not have the global
bit set so they will expire.

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 cvs-all" in the body of the message




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