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 Wed, Dec 14, 2011 at 09:53:58AM -0600, David Smith wrote:
> 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.

That seems a nice compromise. I pushed that change. Commit efe1470.

Thanks,

Mark


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