rpms/kernel/devel git-linus.diff,1.2,1.3 kernel.spec,1.777,1.778
Dave Jones (davej)
fedora-extras-commits at redhat.com
Thu Jul 17 00:51:50 UTC 2008
Author: davej
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv6137
Modified Files:
git-linus.diff kernel.spec
Log Message:
Merge Linux-2.6 up to commit 8a0ca91e1db5de5eb5b18cfa919d52ff8be375af
git-linus.diff:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.2 -r 1.3 git-linus.diff
Index: git-linus.diff
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/git-linus.diff,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- git-linus.diff 16 Jul 2008 03:24:02 -0000 1.2
+++ git-linus.diff 17 Jul 2008 00:50:54 -0000 1.3
@@ -1,272074 +1,67092 @@
-diff --git a/Documentation/RCU/NMI-RCU.txt b/Documentation/RCU/NMI-RCU.txt
-index c64158e..a6d32e6 100644
---- a/Documentation/RCU/NMI-RCU.txt
-+++ b/Documentation/RCU/NMI-RCU.txt
-@@ -93,6 +93,9 @@ Since NMI handlers disable preemption, synchronize_sched() is guaranteed
- not to return until all ongoing NMI handlers exit. It is therefore safe
- to free up the handler's data as soon as synchronize_sched() returns.
-
-+Important note: for this to work, the architecture in question must
-+invoke irq_enter() and irq_exit() on NMI entry and exit, respectively.
-+
-
- Answer to Quick Quiz
-
-diff --git a/Documentation/RCU/RTFP.txt b/Documentation/RCU/RTFP.txt
-index 39ad8f5..9f711d2 100644
---- a/Documentation/RCU/RTFP.txt
-+++ b/Documentation/RCU/RTFP.txt
-@@ -52,6 +52,10 @@ of each iteration. Unfortunately, chaotic relaxation requires highly
- structured data, such as the matrices used in scientific programs, and
- is thus inapplicable to most data structures in operating-system kernels.
-
-+In 1992, Henry (now Alexia) Massalin completed a dissertation advising
-+parallel programmers to defer processing when feasible to simplify
-+synchronization. RCU makes extremely heavy use of this advice.
-+
- In 1993, Jacobson [Jacobson93] verbally described what is perhaps the
- simplest deferred-free technique: simply waiting a fixed amount of time
- before freeing blocks awaiting deferred free. Jacobson did not describe
-@@ -138,6 +142,13 @@ blocking in read-side critical sections appeared [PaulEMcKenney2006c],
- Robert Olsson described an RCU-protected trie-hash combination
- [RobertOlsson2006a].
-
-+2007 saw the journal version of the award-winning RCU paper from 2006
-+[ThomasEHart2007a], as well as a paper demonstrating use of Promela
-+and Spin to mechanically verify an optimization to Oleg Nesterov's
-+QRCU [PaulEMcKenney2007QRCUspin], a design document describing
-+preemptible RCU [PaulEMcKenney2007PreemptibleRCU], and the three-part
-+LWN "What is RCU?" series [PaulEMcKenney2007WhatIsRCUFundamentally,
-+PaulEMcKenney2008WhatIsRCUUsage, and PaulEMcKenney2008WhatIsRCUAPI].
-
- Bibtex Entries
-
-@@ -202,6 +213,20 @@ Bibtex Entries
- ,Year="1991"
- }
-
-+ at phdthesis{HMassalinPhD
-+,author="H. Massalin"
-+,title="Synthesis: An Efficient Implementation of Fundamental Operating
-+System Services"
-+,school="Columbia University"
-+,address="New York, NY"
-+,year="1992"
-+,annotation="
-+ Mondo optimizing compiler.
-+ Wait-free stuff.
-+ Good advice: defer work to avoid synchronization.
-+"
-+}
-+
- @unpublished{Jacobson93
- ,author="Van Jacobson"
- ,title="Avoid Read-Side Locking Via Delayed Free"
-@@ -635,3 +660,86 @@ Revised:
- "
- }
-
-+ at unpublished{PaulEMcKenney2007PreemptibleRCU
-+,Author="Paul E. McKenney"
-+,Title="The design of preemptible read-copy-update"
-+,month="October"
-+,day="8"
-+,year="2007"
-+,note="Available:
-+\url{http://lwn.net/Articles/253651/}
-+[Viewed October 25, 2007]"
-+,annotation="
-+ LWN article describing the design of preemptible RCU.
-+"
-+}
-+
-+########################################################################
-+#
-+# "What is RCU?" LWN series.
-+#
-+
-+ at unpublished{PaulEMcKenney2007WhatIsRCUFundamentally
-+,Author="Paul E. McKenney and Jonathan Walpole"
-+,Title="What is {RCU}, Fundamentally?"
-+,month="December"
-+,day="17"
-+,year="2007"
-+,note="Available:
-+\url{http://lwn.net/Articles/262464/}
-+[Viewed December 27, 2007]"
-+,annotation="
-+ Lays out the three basic components of RCU: (1) publish-subscribe,
-+ (2) wait for pre-existing readers to complete, and (2) maintain
-+ multiple versions.
-+"
-+}
-+
-+ at unpublished{PaulEMcKenney2008WhatIsRCUUsage
-+,Author="Paul E. McKenney"
-+,Title="What is {RCU}? Part 2: Usage"
-+,month="January"
-+,day="4"
-+,year="2008"
-+,note="Available:
-+\url{http://lwn.net/Articles/263130/}
-+[Viewed January 4, 2008]"
-+,annotation="
-+ Lays out six uses of RCU:
-+ 1. RCU is a Reader-Writer Lock Replacement
-+ 2. RCU is a Restricted Reference-Counting Mechanism
-+ 3. RCU is a Bulk Reference-Counting Mechanism
-+ 4. RCU is a Poor Man's Garbage Collector
-+ 5. RCU is a Way of Providing Existence Guarantees
-+ 6. RCU is a Way of Waiting for Things to Finish
-+"
-+}
-+
-+ at unpublished{PaulEMcKenney2008WhatIsRCUAPI
-+,Author="Paul E. McKenney"
-+,Title="{RCU} part 3: the {RCU} {API}"
-+,month="January"
-+,day="17"
-+,year="2008"
-+,note="Available:
-+\url{http://lwn.net/Articles/264090/}
-+[Viewed January 10, 2008]"
-+,annotation="
-+ Gives an overview of the Linux-kernel RCU API and a brief annotated RCU
-+ bibliography.
-+"
-+}
-+
-+ at article{DinakarGuniguntala2008IBMSysJ
-+,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole"
-+,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}"
-+,Year="2008"
-+,Month="April"
-+,journal="IBM Systems Journal"
-+,volume="47"
-+,number="2"
-+,pages="@@-@@"
-+,annotation="
-+ RCU, realtime RCU, sleepable RCU, performance.
-+"
-+}
-diff --git a/Documentation/RCU/checklist.txt b/Documentation/RCU/checklist.txt
-index 42b01bc..cf5562c 100644
---- a/Documentation/RCU/checklist.txt
-+++ b/Documentation/RCU/checklist.txt
-@@ -13,10 +13,13 @@ over a rather long period of time, but improvements are always welcome!
- detailed performance measurements show that RCU is nonetheless
- the right tool for the job.
-
-- The other exception would be where performance is not an issue,
-- and RCU provides a simpler implementation. An example of this
-- situation is the dynamic NMI code in the Linux 2.6 kernel,
-- at least on architectures where NMIs are rare.
-+ Another exception is where performance is not an issue, and RCU
-+ provides a simpler implementation. An example of this situation
-+ is the dynamic NMI code in the Linux 2.6 kernel, at least on
-+ architectures where NMIs are rare.
-+
-+ Yet another exception is where the low real-time latency of RCU's
-+ read-side primitives is critically important.
-
- 1. Does the update code have proper mutual exclusion?
-
-@@ -39,9 +42,10 @@ over a rather long period of time, but improvements are always welcome!
-
- 2. Do the RCU read-side critical sections make proper use of
- rcu_read_lock() and friends? These primitives are needed
-- to suppress preemption (or bottom halves, in the case of
-- rcu_read_lock_bh()) in the read-side critical sections,
-- and are also an excellent aid to readability.
-+ to prevent grace periods from ending prematurely, which
-+ could result in data being unceremoniously freed out from
-+ under your read-side code, which can greatly increase the
-+ actuarial risk of your kernel.
-
- As a rough rule of thumb, any dereference of an RCU-protected
- pointer must be covered by rcu_read_lock() or rcu_read_lock_bh()
-@@ -54,15 +58,30 @@ over a rather long period of time, but improvements are always welcome!
- be running while updates are in progress. There are a number
- of ways to handle this concurrency, depending on the situation:
-
[...334895 lines suppressed...]
- /* Remove stale work items from the task queue. */
-diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
-index 7d1b117..8e0b4c8 100644
---- a/net/netfilter/nf_conntrack_helper.c
-+++ b/net/netfilter/nf_conntrack_helper.c
-@@ -20,6 +20,7 @@
- #include <linux/err.h>
- #include <linux/kernel.h>
- #include <linux/netdevice.h>
-+#include <linux/rculist.h>
-
- #include <net/netfilter/nf_conntrack.h>
- #include <net/netfilter/nf_conntrack_l3proto.h>
-diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
-index 0edefcf..077bcd2 100644
---- a/net/netfilter/nf_conntrack_netlink.c
-+++ b/net/netfilter/nf_conntrack_netlink.c
-@@ -18,6 +18,7 @@
- #include <linux/init.h>
- #include <linux/module.h>
- #include <linux/kernel.h>
-+#include <linux/rculist.h>
- #include <linux/types.h>
- #include <linux/timer.h>
- #include <linux/skbuff.h>
-diff --git a/net/netlabel/netlabel_domainhash.c b/net/netlabel/netlabel_domainhash.c
-index 02c2f7c..643c032 100644
---- a/net/netlabel/netlabel_domainhash.c
-+++ b/net/netlabel/netlabel_domainhash.c
-@@ -30,8 +30,7 @@
- */
+ /*
+@@ -588,9 +586,7 @@ void rpc_exit_task(struct rpc_task *task)
+ {
+ task->tk_action = NULL;
+ if (task->tk_ops->rpc_call_done != NULL) {
+- lock_kernel();
+ task->tk_ops->rpc_call_done(task, task->tk_calldata);
+- unlock_kernel();
+ if (task->tk_action != NULL) {
+ WARN_ON(RPC_ASSASSINATED(task));
+ /* Always release the RPC slot and buffer memory */
+@@ -602,11 +598,8 @@ EXPORT_SYMBOL_GPL(rpc_exit_task);
+
+ void rpc_release_calldata(const struct rpc_call_ops *ops, void *calldata)
+ {
+- if (ops->rpc_release != NULL) {
+- lock_kernel();
++ if (ops->rpc_release != NULL)
+ ops->rpc_release(calldata);
+- unlock_kernel();
+- }
+ }
- #include <linux/types.h>
--#include <linux/rcupdate.h>
--#include <linux/list.h>
-+#include <linux/rculist.h>
- #include <linux/skbuff.h>
- #include <linux/spinlock.h>
- #include <linux/string.h>
-diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index 2d29e26..d4eae6a 100644
---- a/virt/kvm/kvm_main.c
-+++ b/virt/kvm/kvm_main.c
-@@ -1266,12 +1266,12 @@ static int kvm_cpu_hotplug(struct notifier_block *notifier, unsigned long val,
- case CPU_UP_CANCELED:
- printk(KERN_INFO "kvm: disabling virtualization on CPU%d\n",
- cpu);
-- smp_call_function_single(cpu, hardware_disable, NULL, 0, 1);
-+ smp_call_function_single(cpu, hardware_disable, NULL, 1);
- break;
- case CPU_ONLINE:
- printk(KERN_INFO "kvm: enabling virtualization on CPU%d\n",
- cpu);
-- smp_call_function_single(cpu, hardware_enable, NULL, 0, 1);
-+ smp_call_function_single(cpu, hardware_enable, NULL, 1);
- break;
- }
- return NOTIFY_OK;
-@@ -1286,7 +1286,7 @@ static int kvm_reboot(struct notifier_block *notifier, unsigned long val,
- * in vmx root mode.
+ /*
+@@ -626,19 +619,15 @@ static void __rpc_execute(struct rpc_task *task)
+ /*
+ * Execute any pending callback.
*/
- printk(KERN_INFO "kvm: exiting hardware virtualization\n");
-- on_each_cpu(hardware_disable, NULL, 0, 1);
-+ on_each_cpu(hardware_disable, NULL, 1);
- }
- return NOTIFY_OK;
- }
-@@ -1474,12 +1474,12 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
- for_each_online_cpu(cpu) {
- smp_call_function_single(cpu,
- kvm_arch_check_processor_compat,
-- &r, 0, 1);
-+ &r, 1);
- if (r < 0)
- goto out_free_1;
- }
+- if (RPC_DO_CALLBACK(task)) {
+- /* Define a callback save pointer */
++ if (task->tk_callback) {
+ void (*save_callback)(struct rpc_task *);
+
+ /*
+- * If a callback exists, save it, reset it,
+- * call it.
+- * The save is needed to stop from resetting
+- * another callback set within the callback handler
+- * - Dave
++ * We set tk_callback to NULL before calling it,
++ * in case it sets the tk_callback field itself:
+ */
+- save_callback=task->tk_callback;
+- task->tk_callback=NULL;
++ save_callback = task->tk_callback;
++ task->tk_callback = NULL;
+ save_callback(task);
+ }
+
+diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
+index e1770f7..99a52aa 100644
+--- a/net/sunrpc/xprt.c
++++ b/net/sunrpc/xprt.c
+@@ -690,7 +690,7 @@ static void xprt_connect_status(struct rpc_task *task)
+ {
+ struct rpc_xprt *xprt = task->tk_xprt;
+
+- if (task->tk_status >= 0) {
++ if (task->tk_status == 0) {
+ xprt->stat.connect_count++;
+ xprt->stat.connect_time += (long)jiffies - xprt->stat.connect_start;
+ dprintk("RPC: %5u xprt_connect_status: connection established\n",
+@@ -699,12 +699,6 @@ static void xprt_connect_status(struct rpc_task *task)
+ }
+
+ switch (task->tk_status) {
+- case -ECONNREFUSED:
+- case -ECONNRESET:
+- dprintk("RPC: %5u xprt_connect_status: server %s refused "
+- "connection\n", task->tk_pid,
+- task->tk_client->cl_server);
+- break;
+ case -ENOTCONN:
+ dprintk("RPC: %5u xprt_connect_status: connection broken\n",
+ task->tk_pid);
+@@ -878,6 +872,7 @@ void xprt_transmit(struct rpc_task *task)
+ return;
+
+ req->rq_connect_cookie = xprt->connect_cookie;
++ req->rq_xtime = jiffies;
+ status = xprt->ops->send_request(task);
+ if (status == 0) {
+ dprintk("RPC: %5u xmit complete\n", task->tk_pid);
+diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
+index ddbe981..4486c59 100644
+--- a/net/sunrpc/xprtsock.c
++++ b/net/sunrpc/xprtsock.c
+@@ -579,7 +579,6 @@ static int xs_udp_send_request(struct rpc_task *task)
+ req->rq_svec->iov_base,
+ req->rq_svec->iov_len);
+
+- req->rq_xtime = jiffies;
+ status = xs_sendpages(transport->sock,
+ xs_addr(xprt),
+ xprt->addrlen, xdr,
+@@ -671,7 +670,6 @@ static int xs_tcp_send_request(struct rpc_task *task)
+ * to cope with writespace callbacks arriving _after_ we have
+ * called sendmsg(). */
+ while (1) {
+- req->rq_xtime = jiffies;
+ status = xs_sendpages(transport->sock,
+ NULL, 0, xdr, req->rq_bytes_sent);
-- on_each_cpu(hardware_enable, NULL, 0, 1);
-+ on_each_cpu(hardware_enable, NULL, 1);
- r = register_cpu_notifier(&kvm_cpu_notifier);
- if (r)
- goto out_free_2;
-@@ -1525,7 +1525,7 @@ out_free_3:
- unregister_reboot_notifier(&kvm_reboot_notifier);
- unregister_cpu_notifier(&kvm_cpu_notifier);
- out_free_2:
-- on_each_cpu(hardware_disable, NULL, 0, 1);
-+ on_each_cpu(hardware_disable, NULL, 1);
- out_free_1:
- kvm_arch_hardware_unsetup();
- out_free_0:
-@@ -1547,7 +1547,7 @@ void kvm_exit(void)
- sysdev_class_unregister(&kvm_sysdev_class);
- unregister_reboot_notifier(&kvm_reboot_notifier);
- unregister_cpu_notifier(&kvm_cpu_notifier);
-- on_each_cpu(hardware_disable, NULL, 0, 1);
-+ on_each_cpu(hardware_disable, NULL, 1);
- kvm_arch_hardware_unsetup();
- kvm_arch_exit();
- kvm_exit_debug();
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.777
retrieving revision 1.778
diff -u -r1.777 -r1.778
--- kernel.spec 16 Jul 2008 21:53:39 -0000 1.777
+++ kernel.spec 17 Jul 2008 00:50:55 -0000 1.778
@@ -1777,6 +1777,9 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
%changelog
+* Wed Jul 16 2008 Dave Jones <davej at redhat.com>
+- Merge Linux-2.6 up to commit 8a0ca91e1db5de5eb5b18cfa919d52ff8be375af
+
* Wed Jul 16 2008 Kristian Høgsberg <krh at redhat.com>
- Also copy new include/drm directory.
More information about the fedora-extras-commits
mailing list