Lines Matching refs:commit
172 It is possible that the page swapped is the commit page and the tail page,
176 reader page commit page tail page
207 commit page - the page that last finished a write.
209 The commit page only is updated by the outermost writer in the
211 commit page.
227 +---------+ <--- given back to writer (current commit)
233 Write commit:
240 +---------+ <--- next position for write (current commit)
250 +---------+ <-- current commit
262 +---------+ <--(last full commit)
266 |commit |
278 +---------+ <--(last full commit and tail pointer)
281 The commit pointer points to the last write location that was
283 preempted another write is committed, it only becomes a pending commit
284 and will not be a full commit until all writes have been committed.
286 The commit page points to the page that has the last full commit.
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
298 commit page
303 head page commit page |
311 There is a special case that the head page is after either the commit page
312 and possibly the tail page. That is when the commit (and tail) page has been
316 and a reader swaps out a page, it will be swapping out the commit page.
319 reader page commit page tail page
338 In this case, the head page will not move when the tail and commit
341 The reader cannot swap a page into the ring buffer if the commit page
342 is still on that page. If the read meets the last commit (real commit
344 The buffer is considered empty until another full commit finishes.
629 tail page may make it all the way around the buffer and meet the commit
631 of warning to the user). But what happens if the commit was still on the
632 reader page? The commit page is not part of the ring buffer. The tail page
636 reader page commit page
654 If the tail page were to simply push the head page forward, the commit when
657 The solution to this is to test if the commit page is on the reader page
661 This is not a race condition, because the commit page can only be moved
663 This means that the commit will not move while a writer is moving the
665 used as the commit page. The reader can simply check that the commit
666 is off the reader page. Once the commit page leaves the reader page
668 buffer page that is also the commit page.