tech-kern archive

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

Re: pserialize(9) vs. TAILQ



On Tue, Nov 25, 2014 at 3:55 PM, Dennis Ferguson
<dennis.c.ferguson%gmail.com@localhost> wrote:
>
> On 25 Nov, 2014, at 00:56 , Taylor R Campbell <campbell+netbsd-tech-kern%mumble.net@localhost> wrote:
>>   My confusion came from that I thought memory ordering of load is more
>>   flexible in general.  I also didn't quite understand "dependent-load".
>>   I have been only reading NetBSD kernel code to learn memory ordering;
>>   and I believe, nothing in the tree utilize this topologycal
>>   "dependent-load".  I may be missing something though.
>>
>> We do have at least one use of nontrivial data-dependent loads
>> in-tree, in pcq(9), as Dennis noted.
>
> More than that, I think.  If I'm not mistaken there are also examples in
>
>     sys/kern/kern_descrip.c
>     sys/kern/kern_tc.c
>     sys/kern/subr_ipi.c
>     sys/kern/vfs_cache.c
>
> When there is code which fills in a structure, followed by a membar_producer(),
> followed by an assignment to a pointer to point at the structure, it is very
> unlikely that there will be barriers in the places where the pointer is dereferenced.

I'd *really* appreciate if you leave comments explaining those
(hidden) constraints.


Home | Main Index | Thread Index | Old Index