Lines Matching refs:tail
17 tail - where new writes happen in the ring buffer.
172 It is possible that the page swapped is the commit page and the tail page,
176 reader page commit page tail page
205 tail page - the page where the next write will take place.
229 +---------+ <--- tail pointer
254 +---------+ <--- tail pointer
267 +---------+ <--- tail pointer
278 +---------+ <--(last full commit and tail pointer)
287 The tail page points to the page with the last write (before
290 The tail page is always equal to or after the commit page. It may
291 be several pages ahead. If the tail page catches up to the commit
299 tail page
302 tail page
312 and possibly the tail page. That is when the commit (and tail) page has been
319 reader page commit page tail page
338 In this case, the head page will not move when the tail and commit
346 When the tail meets the head page, if the buffer is in overwrite mode,
352 tail page
364 tail page
376 tail page
432 When the tail page meets the head pointer, it will use cmpxchg to
436 tail page
444 tail page
566 When the tail page meets the head page and the buffer is in overwrite mode
568 writer may move the tail page. The way this is done is that the writer
577 tail page
585 tail page
595 tail page
606 tail page
614 After the head page has been moved, the tail page may now move forward.
616 tail page
629 tail page may make it all the way around the buffer and meet the commit
632 reader page? The commit page is not part of the ring buffer. The tail page
652 tail page
654 If the tail page were to simply push the head page forward, the commit when
659 tail page wrapped the buffer, and we must drop new writes.
664 tail page. The reader cannot swap the reader page if it is also being
674 In the pushing forward of the tail page we must first push forward
676 is not the next page, the tail page is simply updated with a cmpxchg.
678 Only writers move the tail page. This must be done atomically to protect
685 The above will update the tail page if it is still pointing to the expected
693 tail page
701 Nested write comes in and moves the tail page forward:
703 tail page (moved by nested writer)
712 The above would fail the cmpxchg, but since the tail page has already
714 on the new tail page.
718 tail page
728 tail page
744 tail page
756 tail page
768 tail page
778 the tail page ahead several pages:
783 tail page
793 tail page
806 tail page
814 The nested writer moves the tail page forward. But does not set the old
817 tail page
825 Another writer preempts and sees the page after the tail page is a head page.
830 tail page
843 tail page
857 tail page
866 Then it will move the tail page, and return back to the second writer.
871 tail page
880 The second writer will fail to move the tail page because it was already
881 moved, so it will try again and add its data to the new tail page.
887 tail page
895 The first writer cannot know atomically if the tail page moved
902 tail page
913 if the tail page is either where it use to be or on the next page:
918 A B tail page
926 If tail page != A and tail page != B, then it must reset the pointer
933 A B tail page
948 A B tail page