tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Atomic vcache_tryvget()



> On 25. May 2020, at 00:53, Andrew Doran <ad%netbsd.org@localhost> wrote:
> 
> On Sat, Apr 04, 2020 at 09:33:26PM +0000, Andrew Doran wrote:
> 
>> This change makes vcache_tryvget() do its work by means of a single atomic
>> operation, which removes the need to take v_interlock beforehand.
> 
> I re-did this one more elegantly.  Assuming no problems I plan to commit
> some time this week.
> 
> 	http://www.netbsd.org/~ad/2020/vget.diff
> 
> The basic idea: have a "gate" bit in v_usecount that's only set when the
> vnode is LOADED.  vcache_tryvget() needs to see this otherwise it fails and
> we go down the slow path instead.  The state transition for reclaiming is
> then:
> 
> 	...
> 	LOADED
> 	-> BLOCKED
> 	confirm that caller still holds the last vnode reference
> 	-> RECLAIMING
> 	...

Looks good to me -- please go ahead ...

--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig (Germany)

Attachment: signature.asc
Description: Message signed with OpenPGP



Home | Main Index | Thread Index | Old Index