lkml.org 
[lkml]   [2011]   [Aug]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v3 4/5] trace: Make removal of ring buffer pages atomic
    On Tue, Aug 23, 2011 at 12:16 PM, David Sharp <dhsharp@google.com> wrote:
    > On Tue, Aug 23, 2011 at 11:55 AM, Vaibhav Nagarnaik
    > <vnagarnaik@google.com> 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.023 / U:94.592 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site