[Intel-gfx] [PATCH 1/5] drm/i915: Round up object allocations

Daniel Vetter daniel at ffwll.ch
Sun Jan 26 10:17:57 CET 2014


On Sun, Jan 26, 2014 at 6:49 AM, Ben Widawsky <ben at bwidawsk.net> wrote:
> On Sat, Jan 25, 2014 at 09:28:24PM +0100, Daniel Vetter wrote:
>> On Thu, Jan 23, 2014 at 07:21:10PM -0800, Ben Widawsky wrote:
>> > DRM gets very mad when you request an object which occupies a partial
>> > page. As a DRM driver, i915 never really wants to anger DRM, and would
>> > always just want the rounding done for us.
>> >
>> > Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
>> > ---
>> >  drivers/gpu/drm/i915/i915_gem.c | 2 ++
>> >  1 file changed, 2 insertions(+)
>> >
>> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
>> > index 024e454..8cd1134 100644
>> > --- a/drivers/gpu/drm/i915/i915_gem.c
>> > +++ b/drivers/gpu/drm/i915/i915_gem.c
>> > @@ -4168,6 +4168,8 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
>> >     struct address_space *mapping;
>> >     gfp_t mask;
>> >
>> > +   size = round_up(size, PAGE_SIZE);
>> > +
>>
>> Nope, if there's some code that doesn't do page-aligend bo allocations it
>> needs to be fixed there. If you want throw a WARN_ON and early return in
>> here.
>> -Daniel
>
> Why?

Because allocating a non-page aligned gem bo is a bug. All current
in-kernel allocations are already aligned. I've thought that we also
reject unaligned request from userspace but apparently we help out
since forever (i.e. gem was merged). Might be worth a shot to turn
that into an -EINVAL if libdrm does the right rounding ...
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list