[Mesa-dev] [PATCH] anv: change BLOCK_POOL_MEMFD_SIZE to exactly 2GB

Emil Velikov emil.l.velikov at gmail.com
Tue Mar 7 17:16:23 UTC 2017


On 7 March 2017 at 15:53, Eero Tamminen <eero.t.tamminen at intel.com> wrote:
> Hi,
>
> On 07.03.2017 17:08, Jason Ekstrand wrote:
>>
>> Interesting... This must only affect android for some weird reason
>> because 32-bit builds have been working on regular Linux for some time
>> now.
>
>
> There are couple of issues...
>
> From "ftruncate" manual page:
>        int ftruncate(int fd, off_t length);
> ...
>        The original Linux truncate() and ftruncate() system calls were not
> designed to handle large file offsets.  Consequently, Linux 2.4 added
> truncate64() and ftruncate64() system calls that handle large files.
> However, these details can be ignored by applications using glibc, whose
> wrapper functions  transparently  employ the more recent system calls where
> they are available.
>
>        On some 32-bit architectures, the calling signature for these system
> calls differ, for the reasons described in syscall(2).
>
>
> And from "ftello" manual page:
>        On some architectures, both off_t and long are 32-bit types, but
> defining _FILE_OFFSET_BITS with the value 64 (before including any header
> files) will turn off_t into a 64-bit type.
>
>
> Not sure which one Android libc/build hits.
>
Afaict 32bit Android has been ... what's a nicer word than broken...
See the fun experience we have in gallium [1] to w/a their fun mmap
implementation ;-)

Tapani, cannot comment on the patch itself but do take a look at [1]
and move/reuse it _everywhere_. Mauro can you lend a hand to Tapani ?

-Emil
[1] src/gallium/auxiliary/os/os_mman.h


More information about the mesa-dev mailing list