Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Jan 2006 03:09:04 +0800
From:      prime <guomingyan@gmail.com>
To:        Tiffany Snyder <tiffany.snyder@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: How priority propagation works on read/write lock?
Message-ID:  <1fa17f810601141109u3e3a0586ud3b3cc86ebc6e80@mail.gmail.com>
In-Reply-To: <b63e753b0601141040v1430da8ag28878e2a31aef486@mail.gmail.com>
References:  <1fa17f810601122232l25551bc5n4e4a01ff6b7921e@mail.gmail.com> <ac7deb50601130146y4abd573dn2ac47622374c1551@mail.gmail.com> <1fa17f810601130220h521590banff7d775a8bd4eaa6@mail.gmail.com> <b63e753b0601141040v1430da8ag28878e2a31aef486@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 1/15/06, Tiffany Snyder <tiffany.snyder@gmail.com> wrote:
>
> Does FreeBSD support rwlocks?
>
> On 1/13/06, prime <guomingyan@gmail.com> wrote:
>
> > On 1/13/06, Kamal R. Prasad <kamalp@acm.org> wrote:
> > >
> > > Priority need not be propagated to readers as they will not block
> > other
> > > readers.
> > > Most likely, you only need to propagate to the writer to avoid
> > priority
> > > inversron.
> > >
> > > regards
> > > -kamal
> > >
> > >
> > > On 1/13/06, prime < guomingyan@gmail.com> wrote:
> > >
> > > > Hi hackers,
> > > >   I have a question about how priority propagation works on
> > > > read/write lock.On locks that have only one owner at a determinate
> > > > moment,we can simply propagate the priority to the owner of lock,bu=
t
> > > > read/write lock may have many owners at some time,so how can we kno=
w
> > > > who are the owners?
> > > >   I browse the OpenSolaris' read/write lock implementation,and find
> > > > that, it simply treats the owner of the lock as NULL when readers
> > own
> > > > the read/write lock.In this way,we can not propagate our priority t=
o
> > > > all threads that block us.
> > > >
> > > > Thanks very much.
> > > > --
> > > > Three passions, simple but overwhelmingly strong, have governed my
> > life:
> > > >
> > > > the longing for love, the search for knowledge, and unbearable pity
> > for
> > > > the suffering of mankind.
> > > >                         ---------Bertrand Russell
> > > > _______________________________________________
> > > > freebsd-hackers@freebsd.org mailing list
> > > > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> > > > To unsubscribe, send any mail to "
> > freebsd-hackers-unsubscribe@freebsd.org
> > > > "
> > > >
> > >
> > >
> > Thanks your reply.
> > But readers may block writers, aren't they?
> > For example, there are three threads,A,B and C, and a read/write lock
> > rwlock1 ,and a mutex mtx1.
> > 1.A lock mtx1,
> > 2.B get the read lock of rwlock1 and then want
> > to get mtx1,but mtx1 is locked by A,so B has to
> > wait on mtx1.
> > 3.C want to get the write lock of rwlock1 and it
> >   has to wait,because rwlock1 is read locked by B.
> > Now if C's priority < A's priority(in numerical), then we get priority
> > inversion.
> >
> > How can avoid this priority inversion?
> > Thanks.
> >
> > --
> > Three passions, simple but overwhelmingly strong, have governed my life=
:
> > the longing for love, the search for knowledge, and unbearable pity for
> > the suffering of mankind.
> >                         ---------Bertrand Russell
> > _______________________________________________
> > freebsd-hackers@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> > To unsubscribe, send any mail to "
> > freebsd-hackers-unsubscribe@freebsd.org"
> >
>
>
FreeBSD supports sx now,see sx(9).sx has the same semanteme
as rwlock.

--
Three passions, simple but overwhelmingly strong, have governed my life:
the longing for love, the search for knowledge, and unbearable pity for
the suffering of mankind.
                         ---------Bertrand Russell



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