On Wed, 23 Feb 2000, Matthew Dillon wrote:
[I wrote]
> :See PR 16568. pmap_remove_all() doesn't flush the TLB properly in
> :FreeBSD-3.x on i386's. Somehow this doesn't cause many problems, but
> :it fairly reliably breaks the free() in fdfree() when there was a file
> :descriptor larger than about 1000 (this gives a free() of more than
> :MAXALLOCSAVE = 2 pages) when there is a lot of fork() activity.
> Ahh. I presume you will commit this patch now that Bjoern has
> confirmed that it works?
Not until the reason that it works is understood.
> I don't know why an unconditional invltlb() didn't work either,
> it should have. Maybe the __asm macro is being optimized out.
I verified that the unconditional invtlb() doesn't work. Better yet,
replacing the invltlb_1pg() in the loop doesn't work. I think this
means that we've changed the page tables too early for a page elsewhere.
Bruce
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message