Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 06 Mar 2003 14:09:54 -0600
From:      "Alan L. Cox" <alc@imimic.com>
To:        Jake Burkholder <jake@locore.ca>
Cc:        Alan Cox <alc@FreeBSD.org>, src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern uipc_syscalls.c
Message-ID:  <3E67AB12.5DC6E8B9@imimic.com>
References:  <200303060448.h264mKjG045767@repoman.freebsd.org> <20030306122555.C225@locore.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
Jake Burkholder wrote:
> 
> Apparently, On Wed, Mar 05, 2003 at 08:48:20PM -0800,
>         Alan Cox said words to the effect of;
> 
> > alc         2003/03/05 20:48:20 PST
> >
> >   FreeBSD src repository
> >
> >   Modified files:
> >     sys/kern             uipc_syscalls.c
> >   Log:
> >   Remove GIANT_REQUIRED from sf_buf_free().
> 
> pmap_qenter and pmap_qremove remove aren't MP-safe on sparc64 and probebly
> ia64 (sparc64 has to maintain virtual address alias chains).  This isn't
> that big of a deal, just please keep it in mind before removing giant from
> other parts of the system.  I'll see about adding some locking for sparc64.
> 

Thanks.  I see what you mean.  There is something else to worry about
here as well.  On i386 and alpha, pmap_remove_all() has no effect on
mappings created by pmap_qenter().  It appears to me on sparc64, the
pmap_qenter() mapping will be removed by a pmap_remove_all().

We actually depend on pmap_remove_all() not affecting mappings by
pmap_qenter().  For example, consider a page that has been vmapbuf()ed
for direct I/O.  If the page is freed by the application (e.g.,
munmap()) before the direct I/O completed, pmap_remove_all() must not
remove vmapbuf()'s mapping.

Alan

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E67AB12.5DC6E8B9>