On 2017-09-21 14:52, Mathieu Desnoyers wrote:
> ----- On Sep 21, 2017, at 2:43 PM, Michael Jeanson [email protected] 
> wrote:
> 
>> On 2017-09-21 14:39, Mathieu Desnoyers wrote:
>>> ----- On Sep 21, 2017, at 2:29 PM, Michael Jeanson [email protected] 
>>> 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
> 

_______________________________________________
lttng-dev mailing list
[email protected]
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to