[lkml]   [2011]   [Aug]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH v3 4/5] trace: Make removal of ring buffer pages atomic
On Tue, Aug 23, 2011 at 12:16 PM, David Sharp <> wrote:
> On Tue, Aug 23, 2011 at 11:55 AM, Vaibhav Nagarnaik
> <> wrote:
>> This patch adds the capability to remove pages from a ring buffer
>> without destroying any existing data in it.
>> This is done by removing the pages after the tail page. This makes sure
>> that first all the empty pages in the ring buffer are removed. If the
>> head page is one in the list of pages to be removed, then the page after
>> the removed ones is made the head page. This removes the oldest data
>> from the ring buffer and keeps the latest data around to be read.
>> To do this in a non-racey manner, tracing is stopped for a very short
>> time while the pages to be removed are identified and unlinked from the
>> ring buffer. The pages are freed after the tracing is restarted to
>> minimize the time needed to stop tracing.
>> The context in which the pages from the per-cpu ring buffer are removed
>> runs on the respective CPU. This minimizes the events not traced to only
>> NMI trace contexts.
> "interrupt contexts". We're not disabling interrupts.

Since the reader_lock is held using spin_lock_irq(), there won't be IRQs
coming in, only the NMIs.

Vaibhav Nagarnaik

 \ /
  Last update: 2011-08-23 21:23    [W:0.100 / U:1.280 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site