Re: [RFC][PATCH] PM / Hibernate: Add sysfs knob to control size of memory for drivers

From: Martin Steigerwald
Date: Wed May 18 2011 - 14:10:04 EST


Am Mittwoch, 18. Mai 2011 schrieb Pavel Machek:
> Hi!
>
> > > From: Rafael J. Wysocki <rjw@xxxxxxx>
> > >
> > > Martin reports that on his system hibernation occasionally fails
> > > due to the lack of memory, because the radeon driver apparently
> > > allocates too much of it during the device freeze stage. It turns
> > > out that the amount of memory allocated by radeon during
> > > hibernation (and presumably during system suspend too) depends on
> > > the utilization of the GPU (e.g. hibernating while there are two
> > > KDE 4 sessions with compositing enabled causes radeon to allocate
> > > more memory than for one KDE 4 session).
> > >
> > > In principle it should be possible to use image_size to make the
> > > memory preallocation mechanism free enough memory for the radeon
> > > driver, but in practice it is not easy to guess the right value
> > > because of the way the preallocation code uses image_size. For
> > > this reason, it seems reasonable to allow users to control the
> > > amount of memory reserved for driver allocations made after the
> > > preallocation, which currently is constant and amounts to 1 MB.
> > >
> > > Introduce a new sysfs file, /sys/power/reserved_size, whose value
> > > will be used as the amount of memory to reserve for the
> > > post-preallocation reservations made by device drivers, in bytes.
> > > For backwards compatibility, set its default (and initial) value to
> > > the currently used number (1 MB).
> > >
> > > References: https://bugzilla.kernel.org/show_bug.cgi?id=34102
> > > Reported-by: Martin Steigerwald <Martin@xxxxxxxxxxxx>
> > > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> >
> > OK, there are no comments, so my understanding is that everyone is
> > fine with this patch and I can add it to my linux-next branch.
>
> Actually no, I don't like it. Yes, knob might be useful for debugging,
> but having it as part of official kernel interface...

Well I and people with similar setups it is actually quite useful. It
makes the difference between does hibernate *every time* versus does not
hibernate sometimes. And I don't see why it can't go again, when the issue
is taken care of elsewise in the future. I think that autotuning / drivers
allocating their memory via whatnot is better, but until such a mechanism
is agreed, developed and included in official kernel I do think that this
knob does help.

So or so I will patch this in for the kernels for my ThinkPad T42, whether
its part of the official kernel or not. And I build my own kernels anyway.
So when described issue really only happens on my setup and nowhere
else...

I think missing is some documentation so that the advanced user can figure
out this knob.

--
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7

Attachment: signature.asc
Description: This is a digitally signed message part.