Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Nov 2024 17:33:29 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        John Baldwin <jhb@FreeBSD.org>, Christos Margiolis <christos@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: 5317480967bf - main - sound: Remove CHN_F_SLEEPING
Message-ID:  <c726294e-43e8-4ad8-8cf4-8357aab35b22@FreeBSD.org>
In-Reply-To: <4234bd4a-29a0-4f95-bebb-d745c101cd25@FreeBSD.org>
References:  <202411261448.4AQEmw7Y084208@gitrepo.freebsd.org> <77c4113c-c023-4db3-826a-83be4e9baa42@FreeBSD.org> <vvqbxb25dikutghe4pknggpu2mely3syk44sfbk4zpweymzvuz@pia6d26v6a2t> <4234bd4a-29a0-4f95-bebb-d745c101cd25@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 27/11/2024 17:12, John Baldwin wrote:
> On 11/26/24 12:17, Christos Margiolis wrote:
>> John Baldwin wrote:
>>> I'm not super excited about reading cv_waiters directly.  Generally speaking
>>> 'struct cv' is opaque to the rest of the kernel.  Maybe add a little inline
>>> routine or macro cv_waiters() that returns this value instead?  Then it can
>>> be documented in condvar.9 along with the caveats about when it is safe to
>>> use.
>>
>> I see we already have cv_wmesg() in sys/sys/condvar.h to access
>> cv_description. Maybe we could add a cv_waiters() macro in there as
>> well?
> 
> Yes, that is where I would add it.

Perhaps, cv_waiters should be left as an implementation detail and an explicit 
counter should be added in the sound driver code as a replacement for 
CHN_F_SLEEPING flag?  And for pre-existing checks of cv_waiters too.

That sounds a bit redundant but all code that needs to check if something is 
waiting does it that way.
cv_waiters is accessed only in kern_condvar.c, naturally, and in the sound driver.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c726294e-43e8-4ad8-8cf4-8357aab35b22>