This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-1.6-594-g12aa5f9
- From: David Smith <dsmith at redhat dot com>
- To: Mark Wielaard <mjw at redhat dot com>
- Cc: systemtap at sourceware dot org, Frank Eigler <fche at redhat dot com>
- Date: Wed, 14 Dec 2011 09:53:58 -0600
- Subject: Re: [SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-1.6-594-g12aa5f9
- References: <20111213223224.10508.qmail@sourceware.org> <1323855764.3567.5.camel@springer.wildebeest.org>
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)