Home | History | Annotate | Download | only in sys
History log of /src/sys/sys/pslist.h
RevisionDateAuthorComments
 1.7  01-Dec-2019  riastradh Adapt <sys/pslist.h> to use atomic_load/store_*.

Changes:

- membar_producer();
*p = v;

=>

atomic_store_release(p, v);

(Effectively like using membar_exit instead of membar_producer,
which is what we should have been doing all along so that stores by
the `reader' can't affect earlier loads by the writer, such as
KASSERT(p->refcnt == 0) in the writer and atomic_inc(&p->refcnt) in
the reader.)

- p = *pp;
if (p != NULL) membar_datadep_consumer();

=>

p = atomic_load_consume(pp);

(Only makes a difference on DEC Alpha. As long as lists generally
have at least one element, this is not likely to make a big
difference, and keeps the code simpler and clearer.)

No other functional change intended. While here, annotate each
synchronizing load and store with its counterpart in a comment.
 1.6  20-Sep-2019  maxv Add ifdefs to eliminate false positives on lgtm, same as coverity.
 1.5  19-Apr-2018  christos branches: 1.5.2;
s/static inline/static __inline/g for consistency with other include
headers.
 1.4  18-Nov-2016  riastradh branches: 1.4.14; 1.4.16;
Explain why we don't touch the next pointer of the removed entry.
 1.3  07-Jul-2016  ozaki-r branches: 1.3.2;
Constify some arguments of pslist(9) functions

By doing so, callers don't need to discard const qualifier.
 1.2  11-Apr-2016  riastradh branches: 1.2.2;
Cause readers to fail noisily after PSLIST_ENTRY_DESTROY.

Using NULL only causes readers to stop iteration, because it looks
like the end of the list; using a bogus non-null pointer causes them
to crash.
 1.1  09-Apr-2016  riastradh Introduce pserialize-safe linked lists.

These are like LIST_* from queue(3), but issue the appropriate memory
barriers for pserialize readers and writers.

Discussed on tech-kern:

https://mail-index.netbsd.org/tech-kern/2016/04/03/msg020365.html
 1.2.2.4  05-Dec-2016  skrll Sync with HEAD
 1.2.2.3  09-Jul-2016  skrll Sync with HEAD
 1.2.2.2  22-Apr-2016  skrll Sync with HEAD
 1.2.2.1  11-Apr-2016  skrll file pslist.h was added on branch nick-nhusb on 2016-04-22 15:44:19 +0000
 1.3.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.4.16.1  22-Apr-2018  pgoyette Sync with HEAD
 1.4.14.2  03-Dec-2017  jdolecek update from HEAD
 1.4.14.1  18-Nov-2016  jdolecek file pslist.h was added on branch tls-maxphys on 2017-12-03 11:39:20 +0000
 1.5.2.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.5.2.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed