rpms/kernel/F-10 kernel.spec, 1.1208, 1.1209 linux-2.6-utrace.patch, 1.104, 1.105

Roland McGrath roland at fedoraproject.org
Mon Jan 12 20:12:14 UTC 2009


Author: roland

Update of /cvs/pkgs/rpms/kernel/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1599

Modified Files:
	kernel.spec linux-2.6-utrace.patch 
Log Message:
utrace update


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1208
retrieving revision 1.1209
diff -u -r1.1208 -r1.1209
--- kernel.spec	12 Jan 2009 19:58:45 -0000	1.1208
+++ kernel.spec	12 Jan 2009 20:11:43 -0000	1.1209
@@ -1773,6 +1773,9 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Mon Jan 12 2009 Roland McGrath <roland at redhat.com>
+- utrace update
+
 * Mon Jan 12 2009 Kyle McMartin <kyle at redhat.com>
 - Rebase for Fedora 10.
 - Turn off CONFIG_MAXSMP on x86_64.
@@ -1834,7 +1837,7 @@
 - 2.6.28-rc8-git3
 
 * Sat Dec 13 2008 Kyle McMartin <kyle at redhat.com>
-- 2.6.28-rc8-git2 
+- 2.6.28-rc8-git2
 
 * Sat Dec 13 2008 Tom "spot" Callaway <tcallawa at redhat.com>
 - Add "scsi_esp_register" to the search terms for modules.block so we pick up sun_esp.ko
@@ -1915,7 +1918,7 @@
 - 2.6.28-rc6-git1
 
 * Mon Nov 24 2008 Jeremy Katz <katzj at redhat.com>
-- Add modules.drm file so that we can determine the DRM modules to pull into 
+- Add modules.drm file so that we can determine the DRM modules to pull into
   initrds
 
 * Wed Nov 19 2008 Neil Horman <nhorman at redhat.com>

linux-2.6-utrace.patch:

Index: linux-2.6-utrace.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-utrace.patch,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -r1.104 -r1.105
--- linux-2.6-utrace.patch	12 Jan 2009 19:51:30 -0000	1.104
+++ linux-2.6-utrace.patch	12 Jan 2009 20:11:43 -0000	1.105
@@ -1,5 +1,5 @@
- Documentation/DocBook/Makefile    |    4 +-
- Documentation/DocBook/utrace.tmpl |  566 ++++++++
+ Documentation/DocBook/Makefile    |    2 +-
+ Documentation/DocBook/utrace.tmpl |  571 ++++++++
  fs/proc/array.c                   |    3 +
  include/linux/ptrace.h            |   21 +
  include/linux/sched.h             |    6 +
@@ -9,19 +9,15 @@
  kernel/Makefile                   |    1 +
  kernel/ptrace.c                   |  793 +++++++++++-
  kernel/signal.c                   |   14 +-
- kernel/utrace.c                   | 2587 +++++++++++++++++++++++++++++++++++++
- 12 files changed, 4783 insertions(+), 13 deletions(-)
+ kernel/utrace.c                   | 2590 +++++++++++++++++++++++++++++++++++++
+ 12 files changed, 4790 insertions(+), 12 deletions(-)
 
 diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
-index 9b1f6ca..e39334b 100644  
+index 9b1f6ca..1fd3feb 100644  
 --- a/Documentation/DocBook/Makefile
 +++ b/Documentation/DocBook/Makefile
-@@ -6,10 +6,10 @@
- # To add a new book the only step required is to add the book to the
- # list of DOCBOOKS.
- 
--DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml \
-+DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml \
+@@ -9,7 +9,7 @@
+ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml \
  	    kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
  	    procfs-guide.xml writing_usb_driver.xml networking.xml \
 -	    kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
@@ -31,10 +27,10 @@
  	    mac80211.xml debugobjects.xml sh.xml
 diff --git a/Documentation/DocBook/utrace.tmpl b/Documentation/DocBook/utrace.tmpl
 new file mode 100644
-index ...1c37104 100644  
+index ...f253402 100644  
 --- /dev/null
 +++ b/Documentation/DocBook/utrace.tmpl
-@@ -0,0 +1,566 @@
+@@ -0,0 +1,571 @@
 +<?xml version="1.0" encoding="UTF-8"?>
 +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 +"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
@@ -101,6 +97,11 @@
 +    Many engines can be attached to each thread.  When a thread has an
 +    event, each engine gets a callback if it has set the event flag for
 +    that event type.  Engines are called in the order they attached.
++    Engines that attach after the event has occurred do not get callbacks
++    for that event.  This includes any new engines just attached by an
++    existing engine's callback function.  Once the sequence of callbacks
++    for that one event has completed, such new engines are then eligible in
++    the next sequence that starts when there is another event.
 +  </para>
 +
 +  <para>
@@ -2630,14 +2631,14 @@
  			  struct pt_regs *regs, void *cookie)
 diff --git a/kernel/utrace.c b/kernel/utrace.c
 new file mode 100644
-index ...3e2191c 100644  
+index ...1873b9d 100644  
 --- /dev/null
 +++ b/kernel/utrace.c
-@@ -0,0 +1,2587 @@
+@@ -0,0 +1,2590 @@
 +/*
 + * utrace infrastructure interface for debugging user processes
 + *
-+ * Copyright (C) 2006, 2007, 2008 Red Hat, Inc.  All rights reserved.
++ * Copyright (C) 2006-2009 Red Hat, Inc.  All rights reserved.
 + *
 + * This copyrighted material is made available to anyone wishing to use,
 + * modify, copy, or redistribute it subject to the terms and conditions
@@ -3012,27 +3013,25 @@
 +	list_add_tail(&engine->entry, &utrace->attaching);
 +
 +	/*
-+	 * Now the new engine is on the pending ->attaching list.  Make
-+	 * sure it gets onto the ->attached list by the next time it's
-+	 * examined.  When called on current (e.g. from inside a callback),
-+	 * we can do it right away.  Otherwise, we set ->report to ensure
-+	 * that start_report() takes the lock and does it next time.
++	 * Now the new engine is on the pending ->attaching list.
++	 * Make sure it gets onto the ->attached list by the next
++	 * time it's examined.
++	 *
++	 * When target == current, it would be safe just to call
++	 * splice_attaching() right here.  But if we're inside a
++	 * callback, that would mean the new engine also gets
++	 * notified about the event that precipitated its own
++	 * creation.  This is not what the user wants.
++	 *
++	 * Setting ->report ensures that start_report() takes the
++	 * lock and does it next time.  Whenever setting ->report,
++	 * we must maintain the invariant that TIF_NOTIFY_RESUME is
++	 * also set.  Otherwise utrace_control() or utrace_do_stop()
++	 * might skip setting TIF_NOTIFY_RESUME upon seeing ->report
++	 * already set, and we'd miss a necessary callback.
 +	 */
-+
-+	if (target == current) {
-+		splice_attaching(utrace);
-+	} else {
-+		/*
-+		 * Whenever setting ->report, we must maintain the
-+		 * invariant that TIF_NOTIFY_RESUME is also set.
-+		 * Otherwise utrace_control() or utrace_do_stop()
-+		 * might skip setting TIF_NOTIFY_RESUME upon seeing
-+		 * ->report already set, and we'd miss a necessary
-+		 * callback.
-+		 */
-+		utrace->report = 1;
-+		set_notify_resume(target);
-+	}
++	utrace->report = 1;
++	set_notify_resume(target);
 +	goto finish;
 +
 +first:
@@ -3456,6 +3455,12 @@
 + *
 + * To synchronize after an -%EINPROGRESS return, see utrace_barrier().
 + *
++ * When @target is @current, -%EINPROGRESS is not returned.  But
++ * note that a newly-created engine will not receive any callbacks
++ * related to an event notification already in progress.  This call
++ * enables @events callbacks to be made as soon as @engine becomes
++ * eligible for any callbacks, see utrace_attach_task().
++ *
 + * These rules provide for coherent synchronization based on %UTRACE_STOP,
 + * even when %SIGKILL is breaking its normal simple rules.
 + */
@@ -3910,11 +3915,10 @@
 +	case UTRACE_REPORT:
 +		/*
 +		 * Make the thread call tracehook_notify_resume() soon.
-+		 * But don't bother if it's already been stopped or
-+		 * interrupted.  In those cases, utrace_get_signal()
-+		 * will be reporting soon.
++		 * But don't bother if it's already been interrupted.
++		 * In that case, utrace_get_signal() will be reporting soon.
 +		 */
-+		if (!utrace->report && !utrace->interrupt && !utrace->stopped) {
++		if (!utrace->report && !utrace->interrupt) {
 +			utrace->report = 1;
 +			set_notify_resume(target);
 +		}




More information about the fedora-extras-commits mailing list