[SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-1.6-594-g12aa5f9
Mark Wielaard
mjw@redhat.com
Fri Dec 16 19:01:00 GMT 2011
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
More information about the Systemtap
mailing list