[lttng-dev] [RFC v2] Add kmalloc failover to vmalloc
Michael Jeanson
mjeanson at efficios.com
Thu Sep 21 20:30:22 UTC 2017
On 2017-09-21 14:52, Mathieu Desnoyers wrote:
> ----- On Sep 21, 2017, at 2:43 PM, Michael Jeanson mjeanson at efficios.com wrote:
>
>> On 2017-09-21 14:39, Mathieu Desnoyers wrote:
>>> ----- On Sep 21, 2017, at 2:29 PM, Michael Jeanson mjeanson at efficios.com wrote:
>>>
>>>> This patch is based on the kvmalloc helpers introduced in kernel 4.12.
>>>>
>>>> It will gracefully failover memory allocations of more than one page to
>>>> vmalloc for systems under high memory pressure or fragmentation.
>>>>
>>>> I only used it in lttng-events.c as a POC, most allocations fit into a
>>>> single page so I'm not sure how useful this actually is.
>>>>
>>>> Thoughts?
>>>
>>> Just update the changelog to specify why we need this for struct lttng_session
>>> (~32kB), and you can submit it for good with a "Fix: " tag.
>>
>> I'm not sure it should be a fix, for this to be of any use all the other
>> allocations bigger than PAGE_SIZE should also use it. Otherwise, the
>> session allocation will succeed but the next sizeable allocation will
>> still fail.
>
> What other allocations larger than PAGE_SIZE using kmalloc did you spot ?
This is not an exhaustive list :
lttng-context.c:
- new_fields: 136 * n
lttng-context-perf-counters.c:
- events: if you have more than 512 CPUs
lib/prio_heap/lttng_prio_heap.c:
- new_ptrs
But mostly in the ringbuffer, thought I have no idea if a failover to
vmalloc is acceptable in this case.
>
> Thanks,
>
> Mathieu
>
>
>>
>>>
>>> Thanks,
>>>
>>> Mathieu
>
More information about the lttng-dev
mailing list