This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Script with static probe point throws error in Pass 3
This is the script which I used:
probe kernel.mark("migrate_task_done")
{
printf("\nSuccess: Task successfully migrated\n\n");
}
And this is its corresponding C file generated by stap:
http://www.nabble.com/file/p21581939/stap_file stap_file
beginner966 wrote:
>
>
>
> This is the declaration as given in the linux/marker.h file
>
> /*
> * Connect a probe to a marker.
> * private data pointer must be a valid allocated memory address, or NULL.
> */
> extern int marker_probe_register(const char *name, const char *format,
> marker_probe_func *probe, void
> *probe_private);
>
> /*
> * Returns the private data given to marker_probe_register.
> */
> extern int marker_probe_unregister(const char *name,
> marker_probe_func *probe, void *probe_private);
>
>
> These are the 4 different marker that I'd put up in kernel/sched.c
>
> 1) if (unlikely(cpu_is_offline(dest_cpu)))
> {
> trace_mark(__migrate_task_cpu_offline,"CPU:%d
> offline",dest_cpu);
> return ret;
> }
>
> 2) if (task_cpu(p) != src_cpu)
> {
> trace_mark(__migrate_task_already_moved,"Already moved to
> CPU:%d",dest_cpu);
> goto done;
> }
>
> 3) if (!cpu_isset(dest_cpu, p->cpus_allowed))
> {
> trace_mark(__migrate_task_affinity_changed,"CPU
> Mask:%lu",(unsigned long)p->cpus_allowed.bits[0]);
> goto fail;
> }
> 4) set_task_cpu(p, dest_cpu);
> trace_mark(migrate_task_done,"%s","Success");
>
>
>
> David Smith-19 wrote:
>>
>> beginner966 wrote:
>>> I got the following error while probing static probe points.
>>>
>>> Pass 3: translated to C into
>>> "/tmp/stapS8IQsL/stap_ef975aa4108a2079c82c8d4c7d4fccaf_1986.c" in
>>> 1030usr/550sys/2102real ms.
>>> Running make -C "/lib/modules/2.6.26.5-rt9/build" M="/tmp/stapS8IQsL"
>>> modules >/dev/null
>>> cc1: warnings being treated as errors
>>> /tmp/stapS8IQsL/stap_ef975aa4108a2079c82c8d4c7d4fccaf_1986.c: In
>>> function
>>> Ãsystemtap_module_initÃ:
>>> /tmp/stapS8IQsL/stap_ef975aa4108a2079c82c8d4c7d4fccaf_1986.c:853:
>>> warning:
>>> passing argument 3 of Ãmarker_probe_registerà from incompatible pointer
>>> type
>>> /tmp/stapS8IQsL/stap_ef975aa4108a2079c82c8d4c7d4fccaf_1986.c:857:
>>> warning:
>>> passing argument 2 of Ãmarker_probe_unregisterà from incompatible
>>> pointer
>>> type
>>> /tmp/stapS8IQsL/stap_ef975aa4108a2079c82c8d4c7d4fccaf_1986.c: In
>>> function
>>> Ãsystemtap_module_exitÃ:
>>> /tmp/stapS8IQsL/stap_ef975aa4108a2079c82c8d4c7d4fccaf_1986.c:945:
>>> warning:
>>> passing argument 2 of Ãmarker_probe_unregisterà from incompatible
>>> pointer
>>> type
>>>
>>>
>>> Please suggest some solutions. Thanks.
>>
>> Hmm. I can't think of why we'd have trouble calling
>> marker_probe_register()/marker_probe_unregister(). The calling
>> conventions for those haven't changed that I can recall.
>>
>> Can you show me the declarations for those two functions from
>> linux/marker.h? They should look like:
>>
>> ----
>> extern int marker_probe_register(const char *name, const char *format,
>> marker_probe_func *probe, void *probe_private);
>>
>> extern int marker_probe_unregister(const char *name,
>> marker_probe_func *probe, void *probe_private);
>> ----
>>
>> --
>> David Smith
>> dsmith@redhat.com
>> Red Hat
>> http://www.redhat.com
>> 256.217.0141 (direct)
>> 256.837.0057 (fax)
>>
>>
>
>
--
View this message in context: http://www.nabble.com/Script-with-static-probe-point-throws-error-in-Pass-3-tp21528274p21581939.html
Sent from the Sourceware - systemtap mailing list archive at Nabble.com.