Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Feb 2002 16:09:07 -0500
From:      Jake Burkholder <jake@locore.ca>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        "David O'Brien" <obrien@FreeBSD.ORG>, current@FreeBSD.ORG
Subject:   Re: Patch to improve mutex collision performance
Message-ID:  <20020218160907.F96115@locore.ca>
In-Reply-To: <200202182043.g1IKhIc36298@apollo.backplane.com>; from dillon@apollo.backplane.com on Mon, Feb 18, 2002 at 12:43:18PM -0800
References:  <200202181912.g1IJCGK32122@apollo.backplane.com> <20020218114326.A98974@dragon.nuxi.com> <200202181951.g1IJpip33604@apollo.backplane.com> <20020218153807.E96115@locore.ca> <200202182043.g1IKhIc36298@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Apparently, On Mon, Feb 18, 2002 at 12:43:18PM -0800,
	Matthew Dillon said words to the effect of;

> :What John's patch does is spin while the lock owner is running on another cpu.
> :Spinning while there are no other processes on the run queues as well makes sense
> :but you'll also be doing a lot of acquires and releases of sched_lock.
> :
> :The only thing that jumped out at me looking at the patch is that critnest cannot
> :be 0 here because the sched_lock is held; holding a spin lock implies being in a
> :critical section.  I need to think about this more and would like you to wait until
> :John has a chance to look at it as well.
> :
> :Jake
> 
>     Sure thing.

Thanks.

> Ah, critnest... you are right.  I should be checking for
>     critnest > 1.

I think you should just leave it alone, don't check critnest at all.
critnest != 1 is illegal because you can't acquire a sleep lock while
in an enclosing critical section.

Jake

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?20020218160907.F96115>