2014-07-11 03:05:20

by Dave Jones

[permalink] [raw]
Subject: i915: reduce noise from i915_gem_shrinker_oom when no memory freed.

When the shrinker doesn't free any memory, don't spew over and over
into the logs. My fuzz tester hits this quite easily, resulting
in dozens of instances of this printk when memory runs low, filling
dmesg, when there's not even any graphical stuff going on, so the
situation would never change.

Signed-off-by: Dave Jones <[email protected]>

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index f36126383d26..9cbccdfedd74 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5198,6 +5198,9 @@ i915_gem_shrinker_oom(struct notifier_block *nb, unsigned long event, void *ptr)
if (unlock)
mutex_unlock(&dev->struct_mutex);

+ if (freed == 0)
+ return NOTIFY_DONE;
+
pr_info("Purging GPU memory, %lu bytes freed, %lu bytes still pinned.\n",
freed, pinned);
if (unbound || bound)


2014-07-11 06:12:00

by Chris Wilson

[permalink] [raw]
Subject: Re: i915: reduce noise from i915_gem_shrinker_oom when no memory freed.

On Thu, Jul 10, 2014 at 11:05:05PM -0400, Dave Jones wrote:
> When the shrinker doesn't free any memory, don't spew over and over
> into the logs. My fuzz tester hits this quite easily, resulting
> in dozens of instances of this printk when memory runs low, filling
> dmesg, when there's not even any graphical stuff going on, so the
> situation would never change.

We still want to know when we failed to free anything though.

if (freed || unbound || bound)
pr_info("Purging GPU memory...

should be a reasonable compromise.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre

2014-07-12 09:23:35

by Daniel Vetter

[permalink] [raw]
Subject: Re: i915: reduce noise from i915_gem_shrinker_oom when no memory freed.

On Fri, Jul 11, 2014 at 07:11:43AM +0100, Chris Wilson wrote:
> On Thu, Jul 10, 2014 at 11:05:05PM -0400, Dave Jones wrote:
> > When the shrinker doesn't free any memory, don't spew over and over
> > into the logs. My fuzz tester hits this quite easily, resulting
> > in dozens of instances of this printk when memory runs low, filling
> > dmesg, when there's not even any graphical stuff going on, so the
> > situation would never change.
>
> We still want to know when we failed to free anything though.
>
> if (freed || unbound || bound)
> pr_info("Purging GPU memory...
>
> should be a reasonable compromise.

Dave, would this work for you? Can you please submit it as a patch to
intel-gfx?

Thanks, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

2014-07-12 15:50:37

by Dave Jones

[permalink] [raw]
Subject: Re: i915: reduce noise from i915_gem_shrinker_oom when no memory freed.

On Sat, Jul 12, 2014 at 11:23:43AM +0200, Daniel Vetter wrote:
> On Fri, Jul 11, 2014 at 07:11:43AM +0100, Chris Wilson wrote:
> > On Thu, Jul 10, 2014 at 11:05:05PM -0400, Dave Jones wrote:
> > > When the shrinker doesn't free any memory, don't spew over and over
> > > into the logs. My fuzz tester hits this quite easily, resulting
> > > in dozens of instances of this printk when memory runs low, filling
> > > dmesg, when there's not even any graphical stuff going on, so the
> > > situation would never change.
> >
> > We still want to know when we failed to free anything though.
> >
> > if (freed || unbound || bound)
> > pr_info("Purging GPU memory...
> >
> > should be a reasonable compromise.
>
> Dave, would this work for you? Can you please submit it as a patch to
> intel-gfx?

Will do when I get back on Monday. I'm running my tests over the
weekend, looks ok so far.

thanks,

Dave