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