* [PATCH] nouveau: add ratelimit to nouveau_graph_dump_trap_info
@ 2009-11-27 21:36 Xavier Chantry
[not found] ` <1259357794-6972-1-git-send-email-shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Xavier Chantry @ 2009-11-27 21:36 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Often when things get stuck spinning, nouveau_pgraph_intr_error and
nouveau_graph_dump_trap_info gets called many times, flooding logs with
PGRAPH_ERROR and filling up the disk.
Pekka Paalanen pointed me to ratelimit, so I went ahead and added some
ratelimit support. It is much better now :)
I am completely new to the kernel world though so I hope I did not do
something terribly wrong.
Signed-off-by: Xavier Chantry <shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
drivers/gpu/drm/nouveau/nouveau_irq.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c
index 597007a..0aae8c2 100644
--- a/drivers/gpu/drm/nouveau/nouveau_irq.c
+++ b/drivers/gpu/drm/nouveau/nouveau_irq.c
@@ -462,6 +462,14 @@ nouveau_pgraph_intr_notify(struct drm_device *dev, uint32_t nsource)
nouveau_graph_dump_trap_info(dev, "PGRAPH_NOTIFY", &trap);
}
+DEFINE_RATELIMIT_STATE(nouveau_ratelimit_state, 3 * HZ, 20);
+
+int nouveau_ratelimit(void)
+{
+ return __ratelimit(&nouveau_ratelimit_state);
+}
+
+
static inline void
nouveau_pgraph_intr_error(struct drm_device *dev, uint32_t nsource)
{
@@ -478,7 +486,7 @@ nouveau_pgraph_intr_error(struct drm_device *dev, uint32_t nsource)
unhandled = 1;
}
- if (unhandled)
+ if (unhandled && nouveau_ratelimit())
nouveau_graph_dump_trap_info(dev, "PGRAPH_ERROR", &trap);
}
--
1.6.5.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH] nouveau: add ratelimit to nouveau_graph_dump_trap_info
[not found] ` <1259357794-6972-1-git-send-email-shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2009-11-27 22:31 ` Xavier Chantry
[not found] ` <1259361073-24931-1-git-send-email-shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Xavier Chantry @ 2009-11-27 22:31 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Often when things get stuck spinning, nouveau_pgraph_intr_error and
nouveau_graph_dump_trap_info gets called many times, flooding logs with
PGRAPH_ERROR and filling up the disk.
Pekka Paalanen pointed me to ratelimit, so I went ahead and added some
ratelimit support. It is much better now :)
I am completely new to the kernel world though so I hope I did not do
something terribly wrong.
Signed-off-by: Xavier Chantry <shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
Addressed a few comments from pq (or is it PP ? :D)
* make the function and global variable static
* fix whitespace damage
drivers/gpu/drm/nouveau/nouveau_irq.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c
index 597007a..fa3b5d1 100644
--- a/drivers/gpu/drm/nouveau/nouveau_irq.c
+++ b/drivers/gpu/drm/nouveau/nouveau_irq.c
@@ -462,6 +462,14 @@ nouveau_pgraph_intr_notify(struct drm_device *dev, uint32_t nsource)
nouveau_graph_dump_trap_info(dev, "PGRAPH_NOTIFY", &trap);
}
+static DEFINE_RATELIMIT_STATE(nouveau_ratelimit_state, 3 * HZ, 20);
+
+static int nouveau_ratelimit(void)
+{
+ return __ratelimit(&nouveau_ratelimit_state);
+}
+
+
static inline void
nouveau_pgraph_intr_error(struct drm_device *dev, uint32_t nsource)
{
@@ -478,7 +486,7 @@ nouveau_pgraph_intr_error(struct drm_device *dev, uint32_t nsource)
unhandled = 1;
}
- if (unhandled)
+ if (unhandled && nouveau_ratelimit())
nouveau_graph_dump_trap_info(dev, "PGRAPH_ERROR", &trap);
}
--
1.6.5.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] nouveau: add ratelimit to nouveau_graph_dump_trap_info
[not found] ` <1259361073-24931-1-git-send-email-shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2009-12-05 16:49 ` Pekka Paalanen
0 siblings, 0 replies; 3+ messages in thread
From: Pekka Paalanen @ 2009-12-05 16:49 UTC (permalink / raw)
To: Xavier Chantry; +Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
On Fri, 27 Nov 2009 23:31:13 +0100
Xavier Chantry <shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Often when things get stuck spinning, nouveau_pgraph_intr_error
> and nouveau_graph_dump_trap_info gets called many times, flooding
> logs with PGRAPH_ERROR and filling up the disk.
>
> Pekka Paalanen pointed me to ratelimit, so I went ahead and added
> some ratelimit support. It is much better now :)
>
> I am completely new to the kernel world though so I hope I did
> not do something terribly wrong.
>
> Signed-off-by: Xavier Chantry <shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Pushed, finally, with a little message trimming.
Sorry for the delay.
--
Pekka Paalanen
http://www.iki.fi/pq/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-12-05 16:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-27 21:36 [PATCH] nouveau: add ratelimit to nouveau_graph_dump_trap_info Xavier Chantry
[not found] ` <1259357794-6972-1-git-send-email-shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-11-27 22:31 ` Xavier Chantry
[not found] ` <1259361073-24931-1-git-send-email-shiningxc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-12-05 16:49 ` Pekka Paalanen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.