This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
about thread_info in task_struct
- From: Wenji Huang <wenji dot huang at oracle dot com>
- To: systemtap at sourceware dot org
- Date: Mon, 30 Jul 2007 18:00:28 +0800
- Subject: about thread_info in task_struct
Hi,
First thank jim! I got the write access for systemtap.
There is some change about task_struct in sched.h (since 2.6.22)
Commit f7e4217b007d1f73e7e3cf10ba4fea4a608c603f
Author: Roman Zippel <zippel@linux-m68k.org>
Date: Wed May 9 02:35:17 2007 -0700
rename thread_info to stack
This finally renames the thread_info field in task structure to stack, so that
the assumptions about this field are gone and archs have more freedom about
placing the thread_info structure.
Therefor task_test.stp failed. Reason in tapset/task.stp:
function task_cpu:long (task:long)
%( kernel_v >= "2.6.23" %?
%{ /* pure */
........
So maybe need a little modification, kernel_v >= "2.6.22" or using macro task_thread_info
Another, I wrote function for returning task addr in case of only knowing pid:
/*return task addr according to process id*/
function get_task: long (pid:long) %{
struct task_struct *p;
pid_t pid;
pid = (pid_t)(long)THIS->pid;
rcu_read_lock();
p = find_task_by_pid(pid);
rcu_read_unlock();
THIS->__retvalue = (long) p;
CATCH_DEREF_FAULT();
%}
Please review it.
Best regards,
Wenji