search for: __ptr_ring_discard_one

Displaying 13 results from an estimated 13 matches for "__ptr_ring_discard_one".

2017 Dec 05
7
[PATCH] ptr_ring: add barriers
...alid data. */ + /* Pairs with smp_read_barrier_depends in __ptr_ring_consume. */ + smp_wmb(); + r->queue[r->producer++] = ptr; if (unlikely(r->producer >= r->size)) r->producer = 0; @@ -275,6 +281,9 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) if (ptr) __ptr_ring_discard_one(r); + /* Make sure anyone accessing data through the pointer is up to date. */ + /* Pairs with smp_wmb in __ptr_ring_produce. */ + smp_read_barrier_depends(); return ptr; } -- MST
2017 Dec 05
7
[PATCH] ptr_ring: add barriers
...alid data. */ + /* Pairs with smp_read_barrier_depends in __ptr_ring_consume. */ + smp_wmb(); + r->queue[r->producer++] = ptr; if (unlikely(r->producer >= r->size)) r->producer = 0; @@ -275,6 +281,9 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) if (ptr) __ptr_ring_discard_one(r); + /* Make sure anyone accessing data through the pointer is up to date. */ + /* Pairs with smp_wmb in __ptr_ring_produce. */ + smp_read_barrier_depends(); return ptr; } -- MST
2017 Dec 06
1
[PATCH] ptr_ring: add barriers
...> + smp_wmb(); > > + > > r->queue[r->producer++] = ptr; > > if (unlikely(r->producer >= r->size)) > > r->producer = 0; > > @@ -275,6 +281,9 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) > > if (ptr) > > __ptr_ring_discard_one(r); > > + /* Make sure anyone accessing data through the pointer is up to date. */ > > + /* Pairs with smp_wmb in __ptr_ring_produce. */ > > + smp_read_barrier_depends(); > > return ptr; > > } > > I was thinking whether or not it's better to move those...
2017 Dec 06
1
[PATCH] ptr_ring: add barriers
...> + smp_wmb(); > > + > > r->queue[r->producer++] = ptr; > > if (unlikely(r->producer >= r->size)) > > r->producer = 0; > > @@ -275,6 +281,9 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) > > if (ptr) > > __ptr_ring_discard_one(r); > > + /* Make sure anyone accessing data through the pointer is up to date. */ > > + /* Pairs with smp_wmb in __ptr_ring_produce. */ > > + smp_read_barrier_depends(); > > return ptr; > > } > > I was thinking whether or not it's better to move those...
2017 Dec 06
1
[PATCH] ptr_ring: Add barriers to fix NULL-pointer exception
...we make sure all the prior > + * writes to *ptr elements are updated. > + */ > + wmb(); > > r->queue[r->producer++] = ptr; > if (unlikely(r->producer >= r->size)) > @@ -275,6 +281,13 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) > if (ptr) > __ptr_ring_discard_one(r); > > + /* > + * This barrier is necessary in order to prevent race condition with > + * with __ptr_ring_produce(). Make sure all the elements of ptr is > + * in sync with the earlier writes which was done prior to pushing > + * it to ring > + */ > + rmb(); > return ptr...
2017 Dec 06
1
[PATCH] ptr_ring: Add barriers to fix NULL-pointer exception
...we make sure all the prior > + * writes to *ptr elements are updated. > + */ > + wmb(); > > r->queue[r->producer++] = ptr; > if (unlikely(r->producer >= r->size)) > @@ -275,6 +281,13 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) > if (ptr) > __ptr_ring_discard_one(r); > > + /* > + * This barrier is necessary in order to prevent race condition with > + * with __ptr_ring_produce(). Make sure all the elements of ptr is > + * in sync with the earlier writes which was done prior to pushing > + * it to ring > + */ > + rmb(); > return ptr...
2017 Dec 06
2
[PATCH] ptr_ring: Add barriers to fix NULL-pointer exception
...__ptr_ring_consume(). By this we make sure all the prior + * writes to *ptr elements are updated. + */ + wmb(); r->queue[r->producer++] = ptr; if (unlikely(r->producer >= r->size)) @@ -275,6 +281,13 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) if (ptr) __ptr_ring_discard_one(r); + /* + * This barrier is necessary in order to prevent race condition with + * with __ptr_ring_produce(). Make sure all the elements of ptr is + * in sync with the earlier writes which was done prior to pushing + * it to ring + */ + rmb(); return ptr; } -- 2.1.4
2017 Dec 06
2
[PATCH] ptr_ring: Add barriers to fix NULL-pointer exception
...__ptr_ring_consume(). By this we make sure all the prior + * writes to *ptr elements are updated. + */ + wmb(); r->queue[r->producer++] = ptr; if (unlikely(r->producer >= r->size)) @@ -275,6 +281,13 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) if (ptr) __ptr_ring_discard_one(r); + /* + * This barrier is necessary in order to prevent race condition with + * with __ptr_ring_produce(). Make sure all the elements of ptr is + * in sync with the earlier writes which was done prior to pushing + * it to ring + */ + rmb(); return ptr; } -- 2.1.4
2017 Dec 06
0
[PATCH] ptr_ring: add barriers
...r_depends in __ptr_ring_consume. */ > + smp_wmb(); > + > r->queue[r->producer++] = ptr; > if (unlikely(r->producer >= r->size)) > r->producer = 0; > @@ -275,6 +281,9 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) > if (ptr) > __ptr_ring_discard_one(r); > > + /* Make sure anyone accessing data through the pointer is up to date. */ > + /* Pairs with smp_wmb in __ptr_ring_produce. */ > + smp_read_barrier_depends(); > return ptr; > } > I was thinking whether or not it's better to move those to the callers. Th...
2017 Dec 06
0
[PATCH] ptr_ring: Add barriers to fix NULL-pointer exception
On Wed, Dec 06, 2017 at 02:08:54PM +0000, Cherian, George wrote: > > @@ -275,6 +281,13 @@ static inline void *__ptr_ring_consume(struct ptr_ring > *r) > > if (ptr) > > __ptr_ring_discard_one(r); > > > > + /* > > + * This barrier is necessary in order to prevent race condition with > > + * with __ptr_ring_produce(). Make sure all the elements of ptr is > > + * in sync with the earlier writes which was done prior to pushing > > + * it to ring > >...
2017 Dec 06
0
[PATCH] ptr_ring: add barriers
...r_depends in __ptr_ring_consume. */ > + smp_wmb(); > + > r->queue[r->producer++] = ptr; > if (unlikely(r->producer >= r->size)) > r->producer = 0; > @@ -275,6 +281,9 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) > if (ptr) > __ptr_ring_discard_one(r); > > + /* Make sure anyone accessing data through the pointer is up to date. */ > + /* Pairs with smp_wmb in __ptr_ring_produce. */ > + smp_read_barrier_depends(); > return ptr; > } > >
2017 Dec 06
0
[PATCH] ptr_ring: add barriers
...> + smp_wmb(); > > + > > r->queue[r->producer++] = ptr; > > if (unlikely(r->producer >= r->size)) > > r->producer = 0; > > @@ -275,6 +281,9 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) > > if (ptr) > > __ptr_ring_discard_one(r); > > + /* Make sure anyone accessing data through the pointer is up to date. */ > > + /* Pairs with smp_wmb in __ptr_ring_produce. */ > > + smp_read_barrier_depends(); > > return ptr; > > } > >
2017 Dec 06
0
[PATCH] ptr_ring: Add barriers to fix NULL-pointer exception
...ll the prior > + * writes to *ptr elements are updated. > + */ > + wmb(); > > r->queue[r->producer++] = ptr; > if (unlikely(r->producer >= r->size)) > @@ -275,6 +281,13 @@ static inline void *__ptr_ring_consume(struct ptr_ring *r) > if (ptr) > __ptr_ring_discard_one(r); > > + /* > + * This barrier is necessary in order to prevent race condition with > + * with __ptr_ring_produce(). Make sure all the elements of ptr is > + * in sync with the earlier writes which was done prior to pushing > + * it to ring > + */ > + rmb(); >...