[Pixman] [PATCH v2] pixman-general: Tighten up calculation of temporary buffer sizes
Pekka Paalanen
ppaalanen at gmail.com
Tue Sep 22 06:43:02 PDT 2015
On Tue, 22 Sep 2015 12:43:25 +0100
Ben Avison <bavison at riscosopen.org> wrote:
> Each of the aligns can only add a maximum of 15 bytes to the space
> requirement. This permits some edge cases to use the stack buffer where
> previously it would have deduced that a heap buffer was required.
> ---
>
> This is an update of my previous patch (now posted over a year ago):
> https://patchwork.freedesktop.org/patch/49898/
>
> which conflicts with the patch just pushed:
> http://patchwork.freedesktop.org/patch/60052/
>
> Since this piece of code is fresh in people's minds, this might be a good
> time to get this one pushed as well.
>
> Note that the scope of this change has been reduced: while the old code
> added space to align the end address to a cacheline boundary (which as I
> pointed out, was unnecessary), the new version works using buffer lengths
> only.
>
> As a discussion point, wouldn't it be better for the ALIGN macro to
> assume 32-byte cache lines? Both 16-byte and 32-byte cachelines are
> currently in common use, but by aligning the buffers to 32-byte addresses
> we would simultaneously achieve 16-byte alignment.
>
> pixman/pixman-general.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
> index fa88463..6141cb0 100644
> --- a/pixman/pixman-general.c
> +++ b/pixman/pixman-general.c
> @@ -158,9 +158,9 @@ general_composite_rect (pixman_implementation_t *imp,
> if (width <= 0 || _pixman_multiply_overflows_int (width, Bpp * 3))
> return;
>
> - if (width * Bpp * 3 > sizeof (stack_scanline_buffer) - 32 * 3)
> + if (width * Bpp * 3 > sizeof (stack_scanline_buffer) - 15 * 3)
> {
> - scanline_buffer = pixman_malloc_ab_plus_c (width, Bpp * 3, 32 * 3);
> + scanline_buffer = pixman_malloc_ab_plus_c (width, Bpp * 3, 15 * 3);
>
> if (!scanline_buffer)
> return;
Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
I think Ben's explanation as seen in
https://patchwork.freedesktop.org/patch/49898/
covers all Søren's concerns (it quotes everything Søren said about the
patch), and I see no reason to reject this.
I'll push this on Friday if no-one objects.
Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 811 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/pixman/attachments/20150922/f5c5eddc/attachment.sig>
More information about the Pixman
mailing list