lkml.org 
[lkml]   [2008]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v6] Unified trace buffer
Steven Rostedt wrote:
> On Fri, 26 Sep 2008, Mike Travis wrote:
>
>> Peter Zijlstra wrote:
>>> On Fri, 2008-09-26 at 14:05 -0400, Steven Rostedt wrote:
>>>> +struct ring_buffer {
>>>> + unsigned long size;
>>>> + unsigned pages;
>>>> + unsigned flags;
>>>> + int cpus;
>>>> + atomic_t record_disabled;
>>>> +
>>>> + struct mutex mutex;
>>>> +
>>>> + /* FIXME: this should be online CPUS */
>>>> + struct ring_buffer_per_cpu *buffers[NR_CPUS];
>>> actually nr_possible makes sense, and you might consider always
>>> allocating buffers (and keeping them for offlined cpus) to avoid massive
>>> allocations/frees cpu-hotplug events.
>>>
>>> Mike Travis has been going over the kernel removing constructs like
>>> this, and replacing them with dynamically allocated arrays of
>>> nr_possible.
>>>
>>>> +};
>> The other thing to consider is using a percpu variable.
>
> This structure is allocated on request.
>
> -- Steve


Ahh, then it would need the yet to be added cpu_alloc() from Christoph.

Your best bet then is to allocate based on nr_cpu_ids.

Cheers,
Mike


\
 
 \ /
  Last update: 2008-09-27 02:07    [from the cache]
©2003-2011 Jasper Spaans