This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-1.6-594-g12aa5f9


On 12/14/2011 03:42 AM, Mark Wielaard wrote:

> On Tue, 2011-12-13 at 22:32 +0000, fche@sourceware.org wrote:

...

>>         entry = (struct __stp_tf_vma_entry *) _stp_kmalloc_gfp(size,
>> -                                                       STP_ALLOC_SLEEP_FLAGS);
>> +                                                               STP_ALLOC_FLAGS);
> 
> Urgh that hurts. Especially on memory constraint systems having to do
> non-sleeping allocations. Isn't there any way we can prevent this? Or at
> least detect that we are using a task_finder that doesn't notify us in
> user context? I think there are other places that assume the task_finder
> only notifies us about updates in user context, for example so we can
> check the build-id. Having a taks_finder that only operates in atomic
> contexts is pretty limiting.


We could postpone the pain a bit by changing the above to:

#ifdef CONFIG_UTRACE
         entry = (struct __stp_tf_vma_entry *) _stp_kmalloc_gfp(size,
		STP_ALLOC_SLEEP_FLAGS);
#else
         entry = (struct __stp_tf_vma_entry *) _stp_kmalloc_gfp(size,
		STP_ALLOC_FLAGS);
#endif

This way only systems using the new code use the non-sleepable alloc.

-- 
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]