rpms/kernel/devel kernel.spec, 1.1456, 1.1457 linux-2.6-utrace-ftrace.patch, 1.1, 1.2 linux-2.6-utrace.patch, 1.108, 1.109

Roland McGrath roland at fedoraproject.org
Mon Mar 23 02:28:07 UTC 2009


Author: roland

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv27077

Modified Files:
	kernel.spec linux-2.6-utrace-ftrace.patch 
	linux-2.6-utrace.patch 
Log Message:
utrace update, fixes /proc/pid/status format (#491508)


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1456
retrieving revision 1.1457
diff -u -r1.1456 -r1.1457
--- kernel.spec	22 Mar 2009 23:56:33 -0000	1.1456
+++ kernel.spec	23 Mar 2009 02:27:35 -0000	1.1457
@@ -1817,6 +1817,9 @@
 # and build.
 
 %changelog
+* Mon Mar 23 2009 Roland McGrath <roland at redhat.com>
+- utrace update, fixes /proc/pid/status format (#491508)
+
 * Mon Mar 23 2009 Ben Skeggs <bskeggs at redhat.com>
 - drm-nouveau.patch: fix GEM object leak, and display shutdown issue
 

linux-2.6-utrace-ftrace.patch:

Index: linux-2.6-utrace-ftrace.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-utrace-ftrace.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-utrace-ftrace.patch	19 Mar 2009 08:03:54 -0000	1.1
+++ linux-2.6-utrace-ftrace.patch	23 Mar 2009 02:27:35 -0000	1.2
@@ -35,9 +35,9 @@
  include/linux/processtrace.h |   41 +++
  kernel/trace/Kconfig         |    9 +
  kernel/trace/Makefile        |    1 +
- kernel/trace/trace.h         |   30 ++-
+ kernel/trace/trace.h         |    8 +
  kernel/trace/trace_process.c |  601 ++++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 671 insertions(+), 11 deletions(-)
+ 5 files changed, 660 insertions(+), 0 deletions(-)
 
 diff --git a/include/linux/processtrace.h b/include/linux/processtrace.h
 new file mode 100644
@@ -118,7 +118,7 @@
  
  libftrace-y := ftrace.o
 diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
-index 4d3d381..b4ebccb 100644  
+index 4d3d381..c4d2e7f 100644  
 --- a/kernel/trace/trace.h
 +++ b/kernel/trace/trace.h
 @@ -7,6 +7,7 @@
@@ -133,29 +133,11 @@
  	TRACE_USER_STACK,
  	TRACE_HW_BRANCHES,
  	TRACE_POWER,
-+	TRACE_PROCESS,
++        TRACE_PROCESS,
  
  	__TRACE_LAST_TYPE
  };
-@@ -38,7 +40,7 @@ enum trace_type {
-  * The trace entry - the most basic unit of tracing. This is what
-  * is printed in the end as a single line in the trace output, such as:
-  *
-- *     bash-15816 [01]   235.197585: idle_cpu <- irq_enter
-+ *     bash-15816 [01]	 235.197585: idle_cpu <- irq_enter
-  */
- struct trace_entry {
- 	unsigned char		type;
-@@ -153,7 +155,7 @@ struct trace_boot_ret {
- #define TRACE_FILE_SIZE 20
- struct trace_branch {
- 	struct trace_entry	ent;
--	unsigned	        line;
-+	unsigned		line;
- 	char			func[TRACE_FUNC_SIZE+1];
- 	char			file[TRACE_FILE_SIZE+1];
- 	char			correct;
-@@ -170,11 +172,16 @@ struct trace_power {
+@@ -170,6 +172,11 @@ struct trace_power {
  	struct power_trace	state_data;
  };
  
@@ -167,71 +149,14 @@
  /*
   * trace_flag_type is an enumeration that holds different
   * states when a trace occurs. These are:
-  *  IRQS_OFF		- interrupts were disabled
-- *  IRQS_NOSUPPORT 	- arch does not support irqs_disabled_flags
-+ *  IRQS_NOSUPPORT	- arch does not support irqs_disabled_flags
-  *  NEED_RESCED		- reschedule is requested
-  *  HARDIRQ		- inside an interrupt handler
-  *  SOFTIRQ		- inside a softirq handler
-@@ -279,7 +286,8 @@ extern void __ftrace_bad_type(void);
- 		IF_ASSIGN(var, ent, struct ftrace_graph_ret_entry,	\
+@@ -280,6 +287,7 @@ extern void __ftrace_bad_type(void);
  			  TRACE_GRAPH_RET);		\
  		IF_ASSIGN(var, ent, struct hw_branch_entry, TRACE_HW_BRANCHES);\
-- 		IF_ASSIGN(var, ent, struct trace_power, TRACE_POWER); \
-+		IF_ASSIGN(var, ent, struct trace_power, TRACE_POWER); \
+  		IF_ASSIGN(var, ent, struct trace_power, TRACE_POWER); \
 +		IF_ASSIGN(var, ent, struct trace_process, TRACE_PROCESS); \
  		__ftrace_bad_type();					\
  	} while (0)
  
-@@ -297,8 +305,8 @@ enum print_line_t {
-  * flags value in struct tracer_flags.
-  */
- struct tracer_opt {
--	const char 	*name; /* Will appear on the trace_options file */
--	u32 		bit; /* Mask assigned in val field in tracer_flags */
-+	const char	*name; /* Will appear on the trace_options file */
-+	u32		bit; /* Mask assigned in val field in tracer_flags */
- };
- 
- /*
-@@ -307,7 +315,7 @@ struct tracer_opt {
-  */
- struct tracer_flags {
- 	u32			val;
--	struct tracer_opt 	*opts;
-+	struct tracer_opt	*opts;
- };
- 
- /* Makes more easy to define a tracer opt */
-@@ -339,7 +347,7 @@ struct tracer {
- 	int			(*set_flag)(u32 old_flags, u32 bit, int set);
- 	struct tracer		*next;
- 	int			print_max;
--	struct tracer_flags 	*flags;
-+	struct tracer_flags	*flags;
- };
- 
- struct trace_seq {
-@@ -561,7 +569,7 @@ static inline int ftrace_trace_task(stru
-  * positions into trace_flags that controls the output.
-  *
-  * NOTE: These bits must match the trace_options array in
-- *       trace.c.
-+ *	 trace.c.
-  */
- enum trace_iterator_flags {
- 	TRACE_ITER_PRINT_PARENT		= 0x01,
-@@ -578,8 +586,8 @@ enum trace_iterator_flags {
- 	TRACE_ITER_PREEMPTONLY		= 0x800,
- 	TRACE_ITER_BRANCH		= 0x1000,
- 	TRACE_ITER_ANNOTATE		= 0x2000,
--	TRACE_ITER_USERSTACKTRACE       = 0x4000,
--	TRACE_ITER_SYM_USEROBJ          = 0x8000,
-+	TRACE_ITER_USERSTACKTRACE	= 0x4000,
-+	TRACE_ITER_SYM_USEROBJ		= 0x8000,
- 	TRACE_ITER_PRINTK_MSGONLY	= 0x10000
- };
- 
 diff --git a/kernel/trace/trace_process.c b/kernel/trace/trace_process.c
 new file mode 100644
 index ...0820e56 100644  

linux-2.6-utrace.patch:

Index: linux-2.6-utrace.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-utrace.patch,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -r1.108 -r1.109
--- linux-2.6-utrace.patch	19 Mar 2009 08:03:54 -0000	1.108
+++ linux-2.6-utrace.patch	23 Mar 2009 02:27:36 -0000	1.109
@@ -36,8 +36,8 @@
  init/Kconfig                      |    9 +
  kernel/Makefile                   |    1 +
  kernel/ptrace.c                   |   18 +-
- kernel/utrace.c                   | 2346 +++++++++++++++++++++++++++++++++++++
- 12 files changed, 3754 insertions(+), 3 deletions(-)
+ kernel/utrace.c                   | 2348 +++++++++++++++++++++++++++++++++++++
+ 12 files changed, 3756 insertions(+), 3 deletions(-)
 
 diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
 index 1462ed8..f5da1b4 100644  
@@ -651,17 +651,17 @@
  	if (p->files)
  		fdt = files_fdtable(p->files);
 diff --git a/include/linux/init_task.h b/include/linux/init_task.h
-index e752d97..ebce118 100644  
+index e752d97..39eebc8 100644  
 --- a/include/linux/init_task.h
 +++ b/include/linux/init_task.h
-@@ -184,6 +184,7 @@ extern struct cred init_cred;
+@@ -181,6 +181,7 @@ extern struct cred init_cred;
+ 		[PIDTYPE_SID]  = INIT_PID_LINK(PIDTYPE_SID),		\
+ 	},								\
+ 	.dirties = INIT_PROP_LOCAL_SINGLE(dirties),			\
++	INIT_UTRACE(tsk)						\
  	INIT_IDS							\
  	INIT_TRACE_IRQFLAGS						\
  	INIT_LOCKDEP							\
-+	INIT_UTRACE(tsk)						\
- }
- 
- 
 diff --git a/include/linux/sched.h b/include/linux/sched.h
 index 011db2f..786ef2d 100644  
 --- a/include/linux/sched.h
@@ -1583,7 +1583,7 @@
 +#endif	/* linux/utrace.h */
 diff --git a/include/linux/utrace_struct.h b/include/linux/utrace_struct.h
 new file mode 100644
-index ...22ce9e7 100644  
+index ...aba7e09 100644  
 --- /dev/null
 +++ b/include/linux/utrace_struct.h
 @@ -0,0 +1,58 @@
@@ -1636,7 +1636,7 @@
 +		.lock = __SPIN_LOCK_UNLOCKED(tsk.utrace.lock),		      \
 +		.attached = LIST_HEAD_INIT(tsk.utrace.attached),	      \
 +		.attaching = LIST_HEAD_INIT(tsk.utrace.attaching),	      \
-+	}
++	},
 +
 +#else
 +
@@ -1729,10 +1729,10 @@
  		 */
 diff --git a/kernel/utrace.c b/kernel/utrace.c
 new file mode 100644
-index ...4f1fb52 100644  
+index ...115be79 100644  
 --- /dev/null
 +++ b/kernel/utrace.c
-@@ -0,0 +1,2346 @@
+@@ -0,0 +1,2348 @@
 +/*
 + * utrace infrastructure interface for debugging user processes
 + *
@@ -3383,7 +3383,11 @@
 +	 */
 +	spin_lock(&utrace->lock);
 +	utrace->stopped = 0;
++	/*
++	 * Do start_report()'s work too since we already have the lock anyway.
++	 */
 +	utrace->report = 0;
++	splice_attaching(utrace);
 +	spin_unlock(&utrace->lock);
 +
 +	REPORT(task, utrace, &report, UTRACE_EVENT(JCTL),
@@ -3547,10 +3551,8 @@
 +	 * If UTRACE_INTERRUPT was just used, we don't bother with a
 +	 * report here.  We will report and stop in utrace_get_signal().
 +	 */
-+	if (unlikely(utrace->interrupt)) {
-+		BUG_ON(!signal_pending(task));
++	if (unlikely(utrace->interrupt))
 +		return;
-+	}
 +
 +	/*
 +	 * Do a simple reporting pass, with no callback after report_quiesce.
@@ -4073,7 +4075,7 @@
 +void task_utrace_proc_status(struct seq_file *m, struct task_struct *p)
 +{
 +	struct utrace *utrace = &p->utrace;
-+	seq_printf(m, "Utrace: %lx%s%s%s\n",
++	seq_printf(m, "Utrace:\t%lx%s%s%s\n",
 +		   p->utrace_flags,
 +		   utrace->stopped ? " (stopped)" : "",
 +		   utrace->report ? " (report)" : "",




More information about the fedora-extras-commits mailing list