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