rpms/kernel/devel alsa-rewrite-hw_ptr-updaters.patch, NONE, 1.1.2.2 linux-2.6-dropwatch-protocol.patch, NONE, 1.1.2.2 config-generic, 1.238.6.11, 1.238.6.12 config-x86_64-generic, 1.68.2.4, 1.68.2.5 drm-nouveau.patch, 1.8.6.5, 1.8.6.6 kernel.spec, 1.1294.2.13, 1.1294.2.14 xen.pvops.patch, 1.1.2.12, 1.1.2.13 xen.pvops.post.patch, 1.1.2.6, 1.1.2.7 xen.pvops.pre.patch, 1.1.2.6, 1.1.2.7

Michael Young myoung at fedoraproject.org
Thu Mar 26 00:02:55 UTC 2009


Author: myoung

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

Modified Files:
      Tag: private-myoung-dom0-branch
	config-generic config-x86_64-generic drm-nouveau.patch 
	kernel.spec xen.pvops.patch xen.pvops.post.patch 
	xen.pvops.pre.patch 
Added Files:
      Tag: private-myoung-dom0-branch
	alsa-rewrite-hw_ptr-updaters.patch 
	linux-2.6-dropwatch-protocol.patch 
Log Message:
minor pvops update and drop linux-2.6-utrace-ftrace.patch patch due to merge difficulties


alsa-rewrite-hw_ptr-updaters.patch:

--- NEW FILE alsa-rewrite-hw_ptr-updaters.patch ---
From: Takashi Iwai <tiwai at suse.de>
Date: Tue, 3 Mar 2009 16:00:15 +0000 (+0100)
Subject: ALSA: Rewrite hw_ptr updaters
X-Git-Url: http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff_plain;h=070397989dc29a6067cb51989ab3d5efc82a6790

ALSA: Rewrite hw_ptr updaters

Clean up and improve snd_pcm_update_hw_ptr*() functions.

snd_pcm_update_hw_ptr() tries to detect the unexpected hwptr jumps
more strictly to avoid the position mess-up, which often results in
the bad quality I/O with pulseaudio.

The hw-ptr skip error messages are printed when xrun proc is set to
non-zero.

Signed-off-by: Takashi Iwai <tiwai at suse.de>
Signed-off-by: Jaroslav Kysela <perex at perex.cz>
---

diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index 9216910..86ac9ae 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -125,19 +125,27 @@ void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_ufram
 	}
 }
 
+#ifdef CONFIG_SND_PCM_XRUN_DEBUG
+#define xrun_debug(substream)	((substream)->pstr->xrun_debug)
+#else
+#define xrun_debug(substream)	0
+#endif
+
+#define dump_stack_on_xrun(substream) do {	\
+		if (xrun_debug(substream) > 1)	\
+			dump_stack();		\
+	} while (0)
+
 static void xrun(struct snd_pcm_substream *substream)
 {
 	snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN);
-#ifdef CONFIG_SND_PCM_XRUN_DEBUG
-	if (substream->pstr->xrun_debug) {
+	if (xrun_debug(substream)) {
 		snd_printd(KERN_DEBUG "XRUN: pcmC%dD%d%c\n",
 			   substream->pcm->card->number,
 			   substream->pcm->device,
 			   substream->stream ? 'c' : 'p');
-		if (substream->pstr->xrun_debug > 1)
-			dump_stack();
+		dump_stack_on_xrun(substream);
 	}
-#endif
 }
 
 static inline snd_pcm_uframes_t snd_pcm_update_hw_ptr_pos(struct snd_pcm_substream *substream,
@@ -182,11 +190,21 @@ static inline int snd_pcm_update_hw_ptr_post(struct snd_pcm_substream *substream
 	return 0;
 }
 
+#define hw_ptr_error(substream, fmt, args...)				\
+	do {								\
+		if (xrun_debug(substream)) {				\
+			if (printk_ratelimit()) {			\
+				snd_printd("hda_codec: " fmt, ##args);	\
+			}						\
+			dump_stack_on_xrun(substream);			\
+		}							\
+	} while (0)
+
 static inline int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *substream)
 {
 	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_pcm_uframes_t pos;
-	snd_pcm_uframes_t new_hw_ptr, hw_ptr_interrupt;
+	snd_pcm_uframes_t new_hw_ptr, hw_ptr_interrupt, hw_base;
 	snd_pcm_sframes_t delta;
 
 	pos = snd_pcm_update_hw_ptr_pos(substream, runtime);
@@ -194,36 +212,47 @@ static inline int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *subs
 		xrun(substream);
 		return -EPIPE;
 	}
-	if (runtime->period_size == runtime->buffer_size)
-		goto __next_buf;
-	new_hw_ptr = runtime->hw_ptr_base + pos;
+	hw_base = runtime->hw_ptr_base;
+	new_hw_ptr = hw_base + pos;
 	hw_ptr_interrupt = runtime->hw_ptr_interrupt + runtime->period_size;
-
-	delta = hw_ptr_interrupt - new_hw_ptr;
-	if (delta > 0) {
-		if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) {
-#ifdef CONFIG_SND_PCM_XRUN_DEBUG
-			if (runtime->periods > 1 && substream->pstr->xrun_debug) {
-				snd_printd(KERN_ERR "Unexpected hw_pointer value [1] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2);
-				if (substream->pstr->xrun_debug > 1)
-					dump_stack();
-			}
-#endif
-			return 0;
+	delta = new_hw_ptr - hw_ptr_interrupt;
+	if (hw_ptr_interrupt == runtime->boundary)
+		hw_ptr_interrupt = 0;
+	if (delta < 0) {
+		delta += runtime->buffer_size;
+		if (delta < 0) {
+			hw_ptr_error(substream, 
+				     "Unexpected hw_pointer value "
+				     "(stream=%i, pos=%ld, intr_ptr=%ld)\n",
+				     substream->stream, (long)pos,
+				     (long)hw_ptr_interrupt);
+			/* rebase to interrupt position */
+			hw_base = new_hw_ptr = hw_ptr_interrupt;
+			delta = 0;
+		} else {
+			hw_base += runtime->buffer_size;
+			if (hw_base == runtime->boundary)
+				hw_base = 0;
+			new_hw_ptr = hw_base + pos;
 		}
-	      __next_buf:
-		runtime->hw_ptr_base += runtime->buffer_size;
-		if (runtime->hw_ptr_base == runtime->boundary)
-			runtime->hw_ptr_base = 0;
-		new_hw_ptr = runtime->hw_ptr_base + pos;
 	}
-
+	if (delta > runtime->period_size) {
+		hw_ptr_error(substream,
+			     "Lost interrupts? "
+			     "(stream=%i, delta=%ld, intr_ptr=%ld)\n",
+			     substream->stream, (long)delta,
+			     (long)hw_ptr_interrupt);
+		/* rebase hw_ptr_interrupt */
+		hw_ptr_interrupt =
+			new_hw_ptr - new_hw_ptr % runtime->period_size;
+	}
 	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
 	    runtime->silence_size > 0)
 		snd_pcm_playback_silence(substream, new_hw_ptr);
 
+	runtime->hw_ptr_base = hw_base;
 	runtime->status->hw_ptr = new_hw_ptr;
-	runtime->hw_ptr_interrupt = new_hw_ptr - new_hw_ptr % runtime->period_size;
+	runtime->hw_ptr_interrupt = hw_ptr_interrupt;
 
 	return snd_pcm_update_hw_ptr_post(substream, runtime);
 }
@@ -233,7 +262,7 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream)
 {
 	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_pcm_uframes_t pos;
-	snd_pcm_uframes_t old_hw_ptr, new_hw_ptr;
+	snd_pcm_uframes_t old_hw_ptr, new_hw_ptr, hw_base;
 	snd_pcm_sframes_t delta;
 
 	old_hw_ptr = runtime->status->hw_ptr;
@@ -242,29 +271,38 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream)
 		xrun(substream);
 		return -EPIPE;
 	}
-	new_hw_ptr = runtime->hw_ptr_base + pos;
-
-	delta = old_hw_ptr - new_hw_ptr;
-	if (delta > 0) {
-		if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) {
-#ifdef CONFIG_SND_PCM_XRUN_DEBUG
-			if (runtime->periods > 2 && substream->pstr->xrun_debug) {
-				snd_printd(KERN_ERR "Unexpected hw_pointer value [2] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2);
-				if (substream->pstr->xrun_debug > 1)
-					dump_stack();
-			}
-#endif
+	hw_base = runtime->hw_ptr_base;
+	new_hw_ptr = hw_base + pos;
+
+	delta = new_hw_ptr - old_hw_ptr;
+	if (delta < 0) {
+		delta += runtime->buffer_size;
+		if (delta < 0) {
+			hw_ptr_error(substream, 
+				     "Unexpected hw_pointer value [2] "
+				     "(stream=%i, pos=%ld, old_ptr=%ld)\n",
+				     substream->stream, (long)pos,
+				     (long)old_hw_ptr);
 			return 0;
 		}
-		runtime->hw_ptr_base += runtime->buffer_size;
-		if (runtime->hw_ptr_base == runtime->boundary)
-			runtime->hw_ptr_base = 0;
-		new_hw_ptr = runtime->hw_ptr_base + pos;
+		hw_base += runtime->buffer_size;
+		if (hw_base == runtime->boundary)
+			hw_base = 0;
+		new_hw_ptr = hw_base + pos;
+	}
+	if (delta > runtime->period_size && runtime->periods > 1) {
+		hw_ptr_error(substream,
+			     "hw_ptr skipping! "
+			     "(pos=%ld, delta=%ld, period=%ld)\n",
+			     (long)pos, (long)delta,
+			     (long)runtime->period_size);
+		return 0;
 	}
 	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
 	    runtime->silence_size > 0)
 		snd_pcm_playback_silence(substream, new_hw_ptr);
 
+	runtime->hw_ptr_base = hw_base;
 	runtime->status->hw_ptr = new_hw_ptr;
 
 	return snd_pcm_update_hw_ptr_post(substream, runtime);

linux-2.6-dropwatch-protocol.patch:

--- NEW FILE linux-2.6-dropwatch-protocol.patch ---
diff -up linux-2.6.29.noarch/include/linux/Kbuild.orig linux-2.6.29.noarch/include/linux/Kbuild
--- linux-2.6.29.noarch/include/linux/Kbuild.orig	2009-03-24 10:31:15.000000000 -0400
+++ linux-2.6.29.noarch/include/linux/Kbuild	2009-03-24 10:30:07.000000000 -0400
@@ -115,6 +115,7 @@ header-y += mqueue.h
 header-y += mtio.h
 header-y += ncp_no.h
 header-y += neighbour.h
+header-y += net_dropmon.h
 header-y += netfilter_arp.h
 header-y += netrom.h
 header-y += nfs2.h
diff -up /dev/null linux-2.6.29.noarch/include/linux/net_dropmon.h
--- /dev/null	2009-03-19 08:40:03.289190608 -0400
+++ linux-2.6.29.noarch/include/linux/net_dropmon.h	2009-03-24 10:28:36.000000000 -0400
@@ -0,0 +1,56 @@
+#ifndef __NET_DROPMON_H
+#define __NET_DROPMON_H
+
+#include <linux/netlink.h>
+
+struct net_dm_drop_point {
+	__u8 pc[8];
+	__u32 count;
+};
+
+#define NET_DM_CFG_VERSION  0
+#define NET_DM_CFG_ALERT_COUNT  1
+#define NET_DM_CFG_ALERT_DELAY 2
+#define NET_DM_CFG_MAX 3
+
+struct net_dm_config_entry {
+	__u32 type;
+	__u64 data __attribute__((aligned(8)));
+};
+
+struct net_dm_config_msg {
+	__u32 entries;
+	struct net_dm_config_entry options[0];
+};
+
+struct net_dm_alert_msg {
+	__u32 entries;
+	struct net_dm_drop_point points[0];
+};
+
+struct net_dm_user_msg {
+	union {
+		struct net_dm_config_msg user;
+		struct net_dm_alert_msg alert;
+	} u;
+};
+
+
+/* These are the netlink message types for this protocol */
+
+enum {
+	NET_DM_CMD_UNSPEC = 0,
+	NET_DM_CMD_ALERT,
+	NET_DM_CMD_CONFIG,
+	NET_DM_CMD_START,
+	NET_DM_CMD_STOP,
+	_NET_DM_CMD_MAX,
+};
+
+#define NET_DM_CMD_MAX (_NET_DM_CMD_MAX - 1)
+
+/*
+ * Our group identifiers
+ */
+#define NET_DM_GRP_ALERT 1
+#endif
diff -up linux-2.6.29.noarch/include/linux/skbuff.h.orig linux-2.6.29.noarch/include/linux/skbuff.h
--- linux-2.6.29.noarch/include/linux/skbuff.h.orig	2009-03-24 10:31:15.000000000 -0400
+++ linux-2.6.29.noarch/include/linux/skbuff.h	2009-03-24 10:04:38.000000000 -0400
@@ -373,6 +373,7 @@ extern void skb_dma_unmap(struct device 
 #endif
 
 extern void kfree_skb(struct sk_buff *skb);
+extern void consume_skb(struct sk_buff *skb);
 extern void	       __kfree_skb(struct sk_buff *skb);
 extern struct sk_buff *__alloc_skb(unsigned int size,
 				   gfp_t priority, int fclone, int node);
@@ -411,7 +412,8 @@ extern int	       skb_to_sgvec(struct sk
 extern int	       skb_cow_data(struct sk_buff *skb, int tailbits,
 				    struct sk_buff **trailer);
 extern int	       skb_pad(struct sk_buff *skb, int pad);
-#define dev_kfree_skb(a)	kfree_skb(a)
+#define dev_kfree_skb(a)	consume_skb(a)
+#define dev_consume_skb(a)	kfree_skb_clean(a)
 extern void	      skb_over_panic(struct sk_buff *skb, int len,
 				     void *here);
 extern void	      skb_under_panic(struct sk_buff *skb, int len,
diff -up /dev/null linux-2.6.29.noarch/include/trace/skb.h
--- /dev/null	2009-03-19 08:40:03.289190608 -0400
+++ linux-2.6.29.noarch/include/trace/skb.h	2009-03-24 10:04:34.000000000 -0400
@@ -0,0 +1,8 @@
+#ifndef _TRACE_SKB_H_
+#define _TRACE_SKB_H_
+
+DECLARE_TRACE(kfree_skb,
+	TPPROTO(struct sk_buff *skb, void *location),
+	TPARGS(skb, location));
+
+#endif
diff -up linux-2.6.29.noarch/net/core/datagram.c.orig linux-2.6.29.noarch/net/core/datagram.c
--- linux-2.6.29.noarch/net/core/datagram.c.orig	2009-03-24 10:31:15.000000000 -0400
+++ linux-2.6.29.noarch/net/core/datagram.c	2009-03-24 10:04:38.000000000 -0400
@@ -208,7 +208,7 @@ struct sk_buff *skb_recv_datagram(struct
 
 void skb_free_datagram(struct sock *sk, struct sk_buff *skb)
 {
-	kfree_skb(skb);
+	consume_skb(skb);
 	sk_mem_reclaim_partial(sk);
 }
 
diff -up /dev/null linux-2.6.29.noarch/net/core/drop_monitor.c
--- /dev/null	2009-03-19 08:40:03.289190608 -0400
+++ linux-2.6.29.noarch/net/core/drop_monitor.c	2009-03-24 10:28:36.000000000 -0400
@@ -0,0 +1,263 @@
+/*
+ * Monitoring code for network dropped packet alerts
+ *
+ * Copyright (C) 2009 Neil Horman <nhorman at tuxdriver.com>
+ */
+
+#include <linux/netdevice.h>
+#include <linux/etherdevice.h>
+#include <linux/string.h>
+#include <linux/if_arp.h>
+#include <linux/inetdevice.h>
+#include <linux/inet.h>
+#include <linux/interrupt.h>
+#include <linux/netpoll.h>
+#include <linux/sched.h>
+#include <linux/delay.h>
+#include <linux/types.h>
+#include <linux/workqueue.h>
+#include <linux/netlink.h>
+#include <linux/net_dropmon.h>
+#include <linux/percpu.h>
+#include <linux/timer.h>
+#include <linux/bitops.h>
+#include <net/genetlink.h>
+
+#include <trace/skb.h>
+
+#include <asm/unaligned.h>
+
+#define TRACE_ON 1
+#define TRACE_OFF 0
+
+static void send_dm_alert(struct work_struct *unused);
+
+
+/*
+ * Globals, our netlink socket pointer
+ * and the work handle that will send up
+ * netlink alerts
+ */
+struct sock *dm_sock;
+
+struct per_cpu_dm_data {
+	struct work_struct dm_alert_work;
+	struct sk_buff *skb;
+	atomic_t dm_hit_count;
+	struct timer_list send_timer;
+};
+
+static struct genl_family net_drop_monitor_family = {
+	.id             = GENL_ID_GENERATE,
+	.hdrsize        = 0,
+	.name           = "NET_DM",
+	.version        = 1,
+	.maxattr        = NET_DM_CMD_MAX,
+};
+
+static DEFINE_PER_CPU(struct per_cpu_dm_data, dm_cpu_data);
+
+static int dm_hit_limit = 64;
+static int dm_delay = 1;
+
+
+static void reset_per_cpu_data(struct per_cpu_dm_data *data)
+{
+	size_t al;
+	struct net_dm_alert_msg *msg;
+
+	al = sizeof(struct net_dm_alert_msg);
+	al += dm_hit_limit * sizeof(struct net_dm_drop_point);
+	data->skb = genlmsg_new(al, GFP_KERNEL);
+	genlmsg_put(data->skb, 0, 0, &net_drop_monitor_family,
+			0, NET_DM_CMD_ALERT);
+	msg = __nla_reserve_nohdr(data->skb, sizeof(struct net_dm_alert_msg));
+	memset(msg, 0, al);
+	atomic_set(&data->dm_hit_count, dm_hit_limit);
+}
+
+static void send_dm_alert(struct work_struct *unused)
+{
+	struct sk_buff *skb;
+	struct per_cpu_dm_data *data = &__get_cpu_var(dm_cpu_data);
+
+	/*
+	 * Grab the skb we're about to send
+	 */
+	skb = data->skb;
+
+	/*
+	 * Replace it with a new one
+	 */
+	reset_per_cpu_data(data);
+
+	/*
+	 * Ship it!
+	 */
+	genlmsg_multicast(skb, 0, NET_DM_GRP_ALERT, GFP_KERNEL);
+
+}
+
+/*
+ * This is the timer function to delay the sending of an alert
+ * in the event that more drops will arrive during the
+ * hysteresis period.  Note that it operates under the timer interrupt
+ * so we don't need to disable preemption here
+ */
+static void sched_send_work(unsigned long unused)
+{
+	struct per_cpu_dm_data *data =  &__get_cpu_var(dm_cpu_data);
+
+	schedule_work(&data->dm_alert_work);
+}
+
+static void trace_kfree_skb_hit(struct sk_buff *skb, void *location)
+{
+	struct net_dm_alert_msg *msg;
+	struct nlmsghdr *nlh;
+	int i;
+	struct per_cpu_dm_data *data = &__get_cpu_var(dm_cpu_data);
+
+
+	if (!atomic_add_unless(&data->dm_hit_count, -1, 0)) {
+		/*
+		 * we're already at zero, discard this hit
+		 */
+		goto out;
+	}
+
+	nlh = (struct nlmsghdr *)data->skb->data;
+	msg = genlmsg_data(nlmsg_data(nlh));
+	for (i = 0; i < msg->entries; i++) {
+		if (!memcmp(&location, msg->points[i].pc, sizeof(void *))) {
+			msg->points[i].count++;
+			goto out;
+		}
+	}
+
+	/*
+	 * We need to create a new entry
+	 */
+	__nla_reserve_nohdr(data->skb, sizeof(struct net_dm_drop_point));
+	memcpy(msg->points[msg->entries].pc, &location, sizeof(void *));
+	msg->points[msg->entries].count = 1;
+	msg->entries++;
+
+	if (!timer_pending(&data->send_timer)) {
+		data->send_timer.expires = jiffies + dm_delay * HZ;
+		add_timer_on(&data->send_timer, smp_processor_id());
+	}
+
+out:
+	return;
+}
+
+static int set_all_monitor_traces(int state)
+{
+	int rc = 0;
+
+	switch (state) {
+	case TRACE_ON:
+		rc |= register_trace_kfree_skb(trace_kfree_skb_hit);
+		break;
+	case TRACE_OFF:
+		rc |= unregister_trace_kfree_skb(trace_kfree_skb_hit);
+
+		tracepoint_synchronize_unregister();
+		break;
+	default:
+		rc = 1;
+		break;
+	}
+
+	if (rc)
+		return -EINPROGRESS;
+	return rc;
+}
+
+
+static int net_dm_cmd_config(struct sk_buff *skb,
+			struct genl_info *info)
+{
+	return -ENOTSUPP;
+}
+
+static int net_dm_cmd_trace(struct sk_buff *skb,
+			struct genl_info *info)
+{
+	switch (info->genlhdr->cmd) {
+	case NET_DM_CMD_START:
+		return set_all_monitor_traces(TRACE_ON);
+		break;
+	case NET_DM_CMD_STOP:
+		return set_all_monitor_traces(TRACE_OFF);
+		break;
+	}
+
+	return -ENOTSUPP;
+}
+
+
+static struct genl_ops dropmon_ops[] = {
+	{
+		.cmd = NET_DM_CMD_CONFIG,
+		.doit = net_dm_cmd_config,
+	},
+	{
+		.cmd = NET_DM_CMD_START,
+		.doit = net_dm_cmd_trace,
+	},
+	{
+		.cmd = NET_DM_CMD_STOP,
+		.doit = net_dm_cmd_trace,
+	},
+};
+
+static int __init init_net_drop_monitor(void)
+{
+	int cpu;
+	int rc, i, ret;
+	struct per_cpu_dm_data *data;
+	printk(KERN_INFO "Initalizing network drop monitor service\n");
+
+	if (sizeof(void *) > 8) {
+		printk(KERN_ERR "Unable to store program counters on this arch, Drop monitor failed\n");
+		return -ENOSPC;
+	}
+
+	if (genl_register_family(&net_drop_monitor_family) < 0) {
+		printk(KERN_ERR "Could not create drop monitor netlink family\n");
+		return -EFAULT;
+	}
+
+	rc = -EFAULT;
+
+	for (i = 0; i < ARRAY_SIZE(dropmon_ops); i++) {
+		ret = genl_register_ops(&net_drop_monitor_family,
+					&dropmon_ops[i]);
+		if (ret) {
+			printk(KERN_CRIT "failed to register operation %d\n",
+				dropmon_ops[i].cmd);
+			goto out_unreg;
+		}
+	}
+
+	rc = 0;
+
+	for_each_present_cpu(cpu) {
+		data = &per_cpu(dm_cpu_data, cpu);
+		reset_per_cpu_data(data);
+		INIT_WORK(&data->dm_alert_work, send_dm_alert);
+		init_timer(&data->send_timer);
+		data->send_timer.data = cpu;
+		data->send_timer.function = sched_send_work;
+	}
+	goto out;
+
+out_unreg:
+	genl_unregister_family(&net_drop_monitor_family);
+out:
+	return rc;
+}
+
+late_initcall(init_net_drop_monitor);
diff -up linux-2.6.29.noarch/net/core/Makefile.orig linux-2.6.29.noarch/net/core/Makefile
--- linux-2.6.29.noarch/net/core/Makefile.orig	2009-03-24 10:31:14.000000000 -0400
+++ linux-2.6.29.noarch/net/core/Makefile	2009-03-24 10:30:07.000000000 -0400
@@ -17,3 +17,6 @@ obj-$(CONFIG_NET_PKTGEN) += pktgen.o
 obj-$(CONFIG_NETPOLL) += netpoll.o
 obj-$(CONFIG_NET_DMA) += user_dma.o
 obj-$(CONFIG_FIB_RULES) += fib_rules.o
+obj-$(CONFIG_TRACEPOINTS) += net-traces.o
+obj-$(CONFIG_NET_DROP_MONITOR) += drop_monitor.o
+
diff -up /dev/null linux-2.6.29.noarch/net/core/net-traces.c
--- /dev/null	2009-03-19 08:40:03.289190608 -0400
+++ linux-2.6.29.noarch/net/core/net-traces.c	2009-03-24 10:04:34.000000000 -0400
@@ -0,0 +1,29 @@
+/*
+ * consolidates trace point definitions
+ *
+ * Copyright (C) 2009 Neil Horman <nhorman at tuxdriver.com>
+ */
+
+#include <linux/netdevice.h>
+#include <linux/etherdevice.h>
+#include <linux/string.h>
+#include <linux/if_arp.h>
+#include <linux/inetdevice.h>
+#include <linux/inet.h>
+#include <linux/interrupt.h>
+#include <linux/netpoll.h>
+#include <linux/sched.h>
+#include <linux/delay.h>
+#include <linux/rcupdate.h>
+#include <linux/types.h>
+#include <linux/workqueue.h>
+#include <linux/netlink.h>
+#include <linux/net_dropmon.h>
+#include <trace/skb.h>
+
+#include <asm/unaligned.h>
+#include <asm/bitops.h>
+
+
+DEFINE_TRACE(kfree_skb);
+EXPORT_TRACEPOINT_SYMBOL_GPL(kfree_skb);
diff -up linux-2.6.29.noarch/net/core/skbuff.c.orig linux-2.6.29.noarch/net/core/skbuff.c
--- linux-2.6.29.noarch/net/core/skbuff.c.orig	2009-03-24 10:31:15.000000000 -0400
+++ linux-2.6.29.noarch/net/core/skbuff.c	2009-03-24 10:28:10.000000000 -0400
@@ -64,6 +64,7 @@
 
 #include <asm/uaccess.h>
 #include <asm/system.h>
+#include <trace/skb.h>
 
 #include "kmap_skb.h"
 
@@ -434,6 +435,26 @@ void kfree_skb(struct sk_buff *skb)
 		smp_rmb();
 	else if (likely(!atomic_dec_and_test(&skb->users)))
 		return;
+	trace_kfree_skb(skb, __builtin_return_address(0));
+	__kfree_skb(skb);
+}
+
+/**
+ *    consume_skb - free an skbuff
+ *    @skb: buffer to free
+ *
+ *    Drop a ref to the buffer and free it if the usage count has hit zero
+ *    Functions identically to kfree_skb, but kfree_skb assumes that the frame
+ *    is being dropped after a failure and notes that
+ */
+void consume_skb(struct sk_buff *skb)
+{
+	if (unlikely(!skb))
+		return;
+	if (likely(atomic_read(&skb->users) == 1))
+		smp_rmb();
+	else if (likely(!atomic_dec_and_test(&skb->users)))
+		return;
 	__kfree_skb(skb);
 }
 
@@ -2895,6 +2916,7 @@ void __skb_warn_lro_forwarding(const str
 EXPORT_SYMBOL(___pskb_trim);
 EXPORT_SYMBOL(__kfree_skb);
 EXPORT_SYMBOL(kfree_skb);
+EXPORT_SYMBOL(consume_skb);
 EXPORT_SYMBOL(__pskb_pull_tail);
 EXPORT_SYMBOL(__alloc_skb);
 EXPORT_SYMBOL(__netdev_alloc_skb);
diff -up linux-2.6.29.noarch/net/ipv4/arp.c.orig linux-2.6.29.noarch/net/ipv4/arp.c
--- linux-2.6.29.noarch/net/ipv4/arp.c.orig	2009-03-24 10:31:15.000000000 -0400
+++ linux-2.6.29.noarch/net/ipv4/arp.c	2009-03-24 10:04:38.000000000 -0400
@@ -892,7 +892,7 @@ static int arp_process(struct sk_buff *s
 out:
 	if (in_dev)
 		in_dev_put(in_dev);
-	kfree_skb(skb);
+	consume_skb(skb);
 	return 0;
 }
 
diff -up linux-2.6.29.noarch/net/ipv4/udp.c.orig linux-2.6.29.noarch/net/ipv4/udp.c
--- linux-2.6.29.noarch/net/ipv4/udp.c.orig	2009-03-24 10:31:15.000000000 -0400
+++ linux-2.6.29.noarch/net/ipv4/udp.c	2009-03-24 10:04:38.000000000 -0400
@@ -1180,7 +1180,7 @@ static int __udp4_lib_mcast_deliver(stru
 			sk = sknext;
 		} while (sknext);
 	} else
-		kfree_skb(skb);
+		consume_skb(skb);
 	spin_unlock(&hslot->lock);
 	return 0;
 }
diff -up linux-2.6.29.noarch/net/Kconfig.orig linux-2.6.29.noarch/net/Kconfig
--- linux-2.6.29.noarch/net/Kconfig.orig	2009-03-24 10:31:15.000000000 -0400
+++ linux-2.6.29.noarch/net/Kconfig	2009-03-24 10:30:07.000000000 -0400
@@ -220,6 +220,17 @@ config NET_TCPPROBE
 	To compile this code as a module, choose M here: the
 	module will be called tcp_probe.
 
+config NET_DROP_MONITOR
+	boolean "Network packet drop alerting service"
+	depends on INET && EXPERIMENTAL && TRACEPOINTS
+	---help---
+	This feature provides an alerting service to userspace in the
+	event that packets are discarded in the network stack.  Alerts
+	are broadcast via netlink socket to any listening user space
+	process.  If you don't need network drop alerts, or if you are ok
+	just checking the various proc files and other utilities for
+	drop statistics, say N here.
+
 endmenu
 
 endmenu
diff -up linux-2.6.29.noarch/net/packet/af_packet.c.orig linux-2.6.29.noarch/net/packet/af_packet.c
--- linux-2.6.29.noarch/net/packet/af_packet.c.orig	2009-03-24 10:31:15.000000000 -0400
+++ linux-2.6.29.noarch/net/packet/af_packet.c	2009-03-24 10:04:38.000000000 -0400
@@ -584,7 +584,7 @@ drop_n_restore:
 		skb->len = skb_len;
 	}
 drop:
-	kfree_skb(skb);
+	consume_skb(skb);
 	return 0;
 }
 


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.238.6.11
retrieving revision 1.238.6.12
diff -u -r1.238.6.11 -r1.238.6.12
--- config-generic	24 Mar 2009 22:57:41 -0000	1.238.6.11
+++ config-generic	26 Mar 2009 00:02:12 -0000	1.238.6.12
@@ -1068,6 +1068,7 @@
 #
 CONFIG_NET_PKTGEN=m
 # CONFIG_NET_TCPPROBE is not set
+CONFIG_NET_DROP_MONITOR=y
 CONFIG_NETDEVICES=y
 
 #
@@ -2319,7 +2320,7 @@
 #
 # Supported FlexCopII (B2C2) Adapters
 #
-CONFIG_DVB_USB_CINERGYT2=m
+CONFIG_DVB_USB_CINERGY_T2=m
 CONFIG_DVB_B2C2_FLEXCOP=m
 CONFIG_DVB_B2C2_FLEXCOP_PCI=m
 CONFIG_DVB_B2C2_FLEXCOP_USB=m


Index: config-x86_64-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-x86_64-generic,v
retrieving revision 1.68.2.4
retrieving revision 1.68.2.5
diff -u -r1.68.2.4 -r1.68.2.5
--- config-x86_64-generic	24 Mar 2009 22:57:41 -0000	1.68.2.4
+++ config-x86_64-generic	26 Mar 2009 00:02:12 -0000	1.68.2.5
@@ -30,7 +30,7 @@
 CONFIG_DMAR=y
 CONFIG_DMAR_GFX_WA=y
 CONFIG_DMAR_FLOPPY_WA=y
-CONFIG_DMAR_DEFAULT_ON=y
+# CONFIG_DMAR_DEFAULT_ON is not set
 
 CONFIG_EFI=y
 CONFIG_EFI_VARS=y

drm-nouveau.patch:

Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-nouveau.patch,v
retrieving revision 1.8.6.5
retrieving revision 1.8.6.6
diff -u -r1.8.6.5 -r1.8.6.6
--- drm-nouveau.patch	24 Mar 2009 22:57:42 -0000	1.8.6.5
+++ drm-nouveau.patch	26 Mar 2009 00:02:12 -0000	1.8.6.6
@@ -2343,10 +2343,10 @@
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.h b/drivers/gpu/drm/nouveau/nouveau_dma.h
 new file mode 100644
-index 0000000..076baf6
+index 0000000..c783de4
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_dma.h
-@@ -0,0 +1,105 @@
+@@ -0,0 +1,106 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
 + * All Rights Reserved.
@@ -2440,6 +2440,7 @@
 +
 +	if (chan->dma.cur == chan->dma.put)
 +		return;
++	chan->accel_done = true;
 +
 +	DRM_MEMORYBARRIER();
 +	chan->dma.put = chan->dma.cur;
@@ -2623,10 +2624,10 @@
 +MODULE_LICENSE("GPL and additional rights");
 diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
 new file mode 100644
-index 0000000..fa22fd1
+index 0000000..f1fdeba
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
-@@ -0,0 +1,750 @@
+@@ -0,0 +1,751 @@
 +/*
 + * Copyright 2005 Stephane Marchesin.
 + * All Rights Reserved.
@@ -2802,6 +2803,7 @@
 +	volatile uint32_t *m2mf_ntfy_map;
 +	uint32_t vram_handle;
 +	uint32_t gart_handle;
++	bool accel_done;
 +
 +	/* Push buffer state (only for drm's channel on !mm_enabled) */
 +	struct {
@@ -4617,10 +4619,10 @@
 +};
 diff --git a/drivers/gpu/drm/nouveau/nouveau_fifo.c b/drivers/gpu/drm/nouveau/nouveau_fifo.c
 new file mode 100644
-index 0000000..469fdf3
+index 0000000..42228e7
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_fifo.c
-@@ -0,0 +1,676 @@
+@@ -0,0 +1,703 @@
 +/*
 + * Copyright 2005-2006 Stephane Marchesin
 + * All Rights Reserved.
@@ -5086,6 +5088,8 @@
 +	struct drm_nouveau_private *dev_priv = dev->dev_private;
 +	struct nouveau_engine *engine = &dev_priv->engine;
 +	uint64_t t_start;
++	bool timeout = false;
++	int ret;
 +
 +	DRM_INFO("%s: freeing fifo %d\n", __func__, chan->id);
 +
@@ -5095,11 +5099,35 @@
 +		if (engine->timer.read(dev) - t_start > 2000000000ULL) {
 +			DRM_ERROR("Failed to idle channel %d before destroy."
 +				  "Prepare for strangeness..\n", chan->id);
++			timeout = true;
 +			break;
 +		}
 +	}
 +
-+	/* Signal all pending fences, if any */
++	/* Wait on a fence until channel goes idle, this ensures the engine
++	 * has finished with the last push buffer completely before we destroy
++	 * the channel.
++	 */
++	if (!timeout && dev_priv->mm_enabled) {
++		struct drm_fence_object *fence = NULL;
++
++		ret = drm_fence_object_create(dev, chan->id, DRM_FENCE_TYPE_EXE,
++					      DRM_FENCE_FLAG_EMIT, &fence);
++		if (ret == 0)
++			ret = drm_fence_object_wait(fence, 0, 1,
++						    DRM_FENCE_TYPE_EXE);
++
++		if (ret) {
++			DRM_ERROR("Failed to idle channel %d before destroy.  "
++				  "Prepare for strangeness..\n", chan->id);
++			timeout = true;
++		}
++	}
++
++	/* Ensure all outstanding fences are signaled.  They should be if the
++	 * above attempts at idling were OK, but if we failed this'll tell TTM
++	 * we're done with the buffers.
++	 */
 +	if (dev_priv->mm_enabled) {
 +		drm_fence_handler(dev, chan->id, chan->next_sequence,
 +				  DRM_FENCE_TYPE_EXE, 0);
@@ -5107,6 +5135,7 @@
 +
 +	/*XXX: Maybe should wait for PGRAPH to finish with the stuff it fetched
 +	 *     from CACHE1 too?
++	 *25/3/2009: handled in the mm_enabled case
 +	 */
 +
 +	/* disable the fifo caches */
@@ -7983,10 +8012,10 @@
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_object.c b/drivers/gpu/drm/nouveau/nouveau_object.c
 new file mode 100644
-index 0000000..068797b
+index 0000000..8304c2e
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_object.c
-@@ -0,0 +1,1237 @@
+@@ -0,0 +1,1240 @@
 +/*
 + * Copyright (C) 2006 Ben Skeggs.
 + *
@@ -9147,6 +9176,9 @@
 +
 +	DRM_DEBUG("ch%d\n", chan->id);
 +
++	if (!chan->ramht_refs.next)
++		return;
++
 +	list_for_each_safe(entry, tmp, &chan->ramht_refs) {
 +		ref = list_entry(entry, struct nouveau_gpuobj_ref, list);
 +
@@ -19848,10 +19880,10 @@
 +#define NV50_CRTC1_SCALE_RES2		0xCDC
 diff --git a/drivers/gpu/drm/nouveau/nv50_fbcon.c b/drivers/gpu/drm/nouveau/nv50_fbcon.c
 new file mode 100644
-index 0000000..dfa14ae
+index 0000000..9e0625d
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv50_fbcon.c
-@@ -0,0 +1,218 @@
+@@ -0,0 +1,220 @@
 +#include "drmP.h"
 +#include "nouveau_drv.h"
 +#include "nouveau_dma.h"
@@ -19866,7 +19898,8 @@
 +	struct nouveau_channel *chan = dev_priv->channel;
 +	int ret, i;
 +
-+	if (info->state != FBINFO_STATE_RUNNING ||
++	if (!chan->accel_done ||
++	    info->state != FBINFO_STATE_RUNNING ||
 +	    info->flags & FBINFO_HWACCEL_DISABLED)
 +		return 0;
 +
@@ -19898,6 +19931,7 @@
 +		return 0;
 +	}
 +
++	chan->accel_done = false;
 +	return 0;
 +}
 +


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.13
retrieving revision 1.1294.2.14
diff -u -r1.1294.2.13 -r1.1294.2.14
--- kernel.spec	24 Mar 2009 22:57:43 -0000	1.1294.2.13
+++ kernel.spec	26 Mar 2009 00:02:13 -0000	1.1294.2.14
@@ -638,6 +638,7 @@
 Patch580: linux-2.6-sparc-selinux-mprotect-checks.patch
 
 Patch600: linux-2.6-defaults-alsa-hda-beep-off.patch
+Patch601: alsa-rewrite-hw_ptr-updaters.patch
 Patch610: hda_intel-prealloc-4mb-dmabuffer.patch
 
 Patch670: linux-2.6-ata-quirk.patch
@@ -685,6 +686,9 @@
 
 Patch9002: cpufreq-add-atom-to-p4-clockmod.patch
 
+#Adding dropwatch into rawhide until we get to 2.6.30
+Patch9003: linux-2.6-dropwatch-protocol.patch
+
 Patch9997: xen.pvops.pre.patch
 Patch9998: xen.pvops.patch
 Patch9999: xen.pvops.post.patch
@@ -1058,7 +1062,7 @@
 # Roland's utrace ptrace replacement.
 ApplyPatch linux-2.6-tracehook.patch
 ApplyPatch linux-2.6-utrace.patch
-ApplyPatch linux-2.6-utrace-ftrace.patch
+#ApplyPatch linux-2.6-utrace-ftrace.patch
 
 # DMA API debugging
 #ApplyPatch linux-2.6-debug-dma-api.patch
@@ -1178,6 +1182,7 @@
 
 # squelch hda_beep by default
 ApplyPatch linux-2.6-defaults-alsa-hda-beep-off.patch
+ApplyPatch alsa-rewrite-hw_ptr-updaters.patch
 ApplyPatch hda_intel-prealloc-4mb-dmabuffer.patch
 
 # ia64 ata quirk
@@ -1230,6 +1235,8 @@
 
 ApplyPatch cpufreq-add-atom-to-p4-clockmod.patch
 
+ApplyPatch linux-2.6-dropwatch-protocol.patch
+
 ApplyPatch xen.pvops.pre.patch
 ApplyPatch xen.pvops.patch
 ApplyPatch xen.pvops.post.patch
@@ -1816,6 +1823,24 @@
 # and build.
 
 %changelog
+* Wed Mar 25 2009 Michael Young <m.a.young at durham.ac.uk>
+- disable linux-2.6-utrace-ftrace.patch due to merge problems
+- minor pvops update
+
+* Wed Mar 25 2009 Neil Horman <nhorman at redhat.com>
+- Add dropmonitor/dropwatch protocol from 2.6.30
+
+* Wed Mar 25 2009 Kyle McMartin <kyle at redhat.com>
+- alsa-rewrite-hw_ptr-updaters.patch: snd_pcm_update_hw_ptr() tries to
+  detect the unexpected hwptr jumps more strictly to avoid the position
+  mess-up, which often results in the bad quality I/O with pulseaudio.
+
+* Wed Mar 25 2009 Ben Skeggs <bskeggs at redhat.com>
+- drm-nouveau.patch: idle channels better before destroying them
+
+* Tue Mar 24 2009 Kyle McMartin <kyle at redhat.com>
+- Disable DMAR by default until suspend & resume is fixed.
+
 * Tue Mar 24 2009 Michael Young <m.a.young at durham.ac.uk>
 - Update pvops patch and fix package numbering for 2.6.29
 

xen.pvops.patch:

Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.12
retrieving revision 1.1.2.13
diff -u -r1.1.2.12 -r1.1.2.13
--- xen.pvops.patch	24 Mar 2009 22:57:47 -0000	1.1.2.12
+++ xen.pvops.patch	26 Mar 2009 00:02:13 -0000	1.1.2.13
@@ -91008,6 +91008,18 @@
  			dd->ipath_hol_timer.expires);
  	}
  }
+diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
+index 5f9d860..fadd395 100644
+--- a/drivers/input/Kconfig
++++ b/drivers/input/Kconfig
+@@ -152,6 +152,7 @@ config INPUT_APMPOWER
+ config XEN_KBDDEV_FRONTEND
+ 	tristate "Xen virtual keyboard and mouse support"
+ 	depends on XEN_FBDEV_FRONTEND
++	select XEN_XENBUS_FRONTEND
+ 	default y
+ 	help
+ 	  This driver implements the front-end of the Xen virtual
 diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
 index 3556168..ea2638b 100644
 --- a/drivers/input/keyboard/Kconfig
@@ -91828,7 +91840,7 @@
  	  The CS553x companion chips for the AMD Geode processor
  	  include NAND flash controllers with built-in hardware ECC
 diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
-index 62d732a..2357da7 100644
+index 62d732a..cec6aab 100644
 --- a/drivers/net/Kconfig
 +++ b/drivers/net/Kconfig
 @@ -776,6 +776,8 @@ config NET_VENDOR_SMC
@@ -91849,17 +91861,23 @@
  	select CRC32
  	help
  	  If you have a network (Ethernet) card of this type, say Y and read
-@@ -2559,7 +2563,10 @@ config MYRI10GE_DCA
+@@ -2559,6 +2563,8 @@ config MYRI10GE_DCA
  
  config NETXEN_NIC
  	tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC"
 +	# build breakage
 +	depends on 0
  	depends on PCI
-+	select XEN_XENBUS_FRONTEND
  	help
  	  This enables the support for NetXen's Gigabit Ethernet card.
- 
+@@ -2653,6 +2659,7 @@ source "drivers/s390/net/Kconfig"
+ config XEN_NETDEV_FRONTEND
+ 	tristate "Xen network device frontend driver"
+ 	depends on XEN
++	select XEN_XENBUS_FRONTEND
+ 	default y
+ 	help
+ 	  The network device frontend driver allows the kernel to
 diff --git a/drivers/net/Makefile b/drivers/net/Makefile
 index 471baaf..bc4668b 100644
 --- a/drivers/net/Makefile
@@ -94465,6 +94483,18 @@
  	enum wlp_assc_error assc_err;
  	char enonce_buf[WLP_WSS_NONCE_STRSIZE];
  	char rnonce_buf[WLP_WSS_NONCE_STRSIZE];
+diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
+index fb19803..546e54b 100644
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -2068,6 +2068,7 @@ config XEN_FBDEV_FRONTEND
+ 	select FB_SYS_IMAGEBLIT
+ 	select FB_SYS_FOPS
+ 	select FB_DEFERRED_IO
++	select XEN_XENBUS_FRONTEND
+ 	default y
+ 	help
+ 	  This driver implements the front-end of the Xen virtual
 diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
 index 1207c20..8d42e9b 100644
 --- a/drivers/video/aty/atyfb_base.c

xen.pvops.post.patch:

Index: xen.pvops.post.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.post.patch,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -r1.1.2.6 -r1.1.2.7
--- xen.pvops.post.patch	24 Mar 2009 22:57:49 -0000	1.1.2.6
+++ xen.pvops.post.patch	26 Mar 2009 00:02:15 -0000	1.1.2.7
@@ -867,53 +867,3 @@
  	help
  	  Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
  	  and the TerraTec Cinergy T USB XE (Rev.1)
---- a/kernel/trace/Kconfig
-+++ b/kernel/trace/Kconfig
-@@ -150,6 +150,15 @@ config CONTEXT_SWITCH_TRACER
- 	help
- 	  Basic tracer to catch the syscall entry and exit events.
- 
-+config PROCESS_TRACER
-+	bool "Trace process events via utrace"
-+	depends on DEBUG_KERNEL
-+	select TRACING
-+	select UTRACE
-+	help
-+	  This tracer provides trace records from process events
-+	  accessible to utrace: lifecycle, system calls, and signals.
-+
- config BOOT_TRACER
- 	bool "Trace boot initcalls"
- 	depends on DEBUG_KERNEL
---- a/kernel/trace/Makefile
-+++ b/kernel/trace/Makefile
-@@ -33,6 +33,7 @@ obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += t
- obj-$(CONFIG_TRACE_BRANCH_PROFILING) += trace_branch.o
- obj-$(CONFIG_HW_BRANCH_TRACER) += trace_hw_branches.o
- obj-$(CONFIG_POWER_TRACER) += trace_power.o
-+obj-$(CONFIG_PROCESS_TRACER) += trace_process.o
- obj-$(CONFIG_KMEMTRACE) += kmemtrace.o
- obj-$(CONFIG_WORKQUEUE_TRACER) += trace_workqueue.o
- obj-$(CONFIG_BLK_DEV_IO_TRACE)  += blktrace.o
---- a/kernel/trace/trace.h
-+++ b/kernel/trace/trace.h
-@@ -30,6 +31,7 @@ enum trace_type {
- 	TRACE_KMEM_ALLOC,
- 	TRACE_KMEM_FREE,
- 	TRACE_POWER,
-+        TRACE_PROCESS,
- 	TRACE_BLK,
- 
- 	__TRACE_LAST_TYPE
-@@ -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_process, TRACE_PROCESS); \
- 		IF_ASSIGN(var, ent, struct kmemtrace_alloc_entry,	\
- 			  TRACE_KMEM_ALLOC);	\
- 		IF_ASSIGN(var, ent, struct kmemtrace_free_entry,	\
---- a/localversion-tip	2009-02-17 19:49:34.000000000 +0000
-+++ /dev/null	2009-02-17 18:08:14.005240123 +0000
-@@ -1 +0,0 @@
---tip

xen.pvops.pre.patch:

Index: xen.pvops.pre.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.pre.patch,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -r1.1.2.6 -r1.1.2.7
--- xen.pvops.pre.patch	24 Mar 2009 22:57:49 -0000	1.1.2.6
+++ xen.pvops.pre.patch	26 Mar 2009 00:02:15 -0000	1.1.2.7
@@ -6,7 +6,6 @@
 drm-next.patch - drivers/gpu/drm/drm_proc.c
 linux-2.6-debug-taint-vm.patch - kernel/panic.c
 linux-2.6-v4l-dvb-update.patch - drivers/media/dvb/dvb-usb/Kconfig
-linux-2.6-utrace-ftrace.patch - kernel/trace/Kconfig kernel/trace/Makefile kernel/trace/trace.h
 
 --- a/arch/x86/mm/pat.c	2009-02-14 12:49:46.000000000 +0000
 +++ b/arch/x86/mm/pat.c	2009-02-14 09:16:34.000000000 +0000
@@ -875,48 +874,3 @@
  	help
  	  Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
  	  and the TerraTec Cinergy T USB XE (Rev.1)
---- a/kernel/trace/Kconfig
-+++ b/kernel/trace/Kconfig
-@@ -150,15 +150,6 @@ config CONTEXT_SWITCH_TRACER
- 	  This tracer gets called from the context switch and records
- 	  all switching of tasks.
- 
--config PROCESS_TRACER
--	bool "Trace process events via utrace"
--	depends on DEBUG_KERNEL
--	select TRACING
--	select UTRACE
--	help
--	  This tracer provides trace records from process events
--	  accessible to utrace: lifecycle, system calls, and signals.
--
- config BOOT_TRACER
- 	bool "Trace boot initcalls"
- 	depends on DEBUG_KERNEL
---- a/kernel/trace/Makefile
-+++ b/kernel/trace/Makefile
-@@ -33,6 +33,5 @@ obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += t
- obj-$(CONFIG_TRACE_BRANCH_PROFILING) += trace_branch.o
- obj-$(CONFIG_HW_BRANCH_TRACER) += trace_hw_branches.o
- obj-$(CONFIG_POWER_TRACER) += trace_power.o
--obj-$(CONFIG_PROCESS_TRACER) += trace_process.o
- 
- libftrace-y := ftrace.o
---- a/kernel/trace/trace.h
-+++ b/kernel/trace/trace.h
-@@ -30,7 +31,6 @@ enum trace_type {
- 	TRACE_USER_STACK,
- 	TRACE_HW_BRANCHES,
- 	TRACE_POWER,
--        TRACE_PROCESS,
- 
- 	__TRACE_LAST_TYPE
- };
-@@ -280,7 +287,6 @@ 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_process, TRACE_PROCESS); \
- 		__ftrace_bad_type();					\
- 	} while (0)
- 




More information about the fedora-extras-commits mailing list