On Wed, 25 May 2016 10:41:53 +0300 Ian Ray <ian....@ge.com> wrote: > posix_fallocate() does an explicit rollback if it gets EINTR, and > this is a problem on slow systems because when the allocation size > is sufficiently large posix_fallocate() will always be interrupted > by the smart scheduler's SIGALRM. > > Changes since v1 - big comment in the code to explain what is going on > > Signed-off-by: Ian Ray <ian....@ge.com> > --- > hw/xwayland/xwayland-shm.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/hw/xwayland/xwayland-shm.c b/hw/xwayland/xwayland-shm.c > index c199e5e..82a9414 100644 > --- a/hw/xwayland/xwayland-shm.c > +++ b/hw/xwayland/xwayland-shm.c > @@ -28,6 +28,8 @@ > #include <dix-config.h> > #endif > > +#include "os.h" > + > #include "xwayland.h" > > #include <sys/mman.h> > @@ -140,9 +142,17 @@ os_create_anonymous_file(off_t size) > return -1; > > #ifdef HAVE_POSIX_FALLOCATE > + /* > + * posix_fallocate does an explicit rollback if it gets EINTR. > + * Temporarily block signals to allow the call to succeed on > + * slow systems where the smart scheduler's SIGALRM prevents > + * large allocation attempts from ever succeeding. > + */ > + OsBlockSignals(); > do { > ret = posix_fallocate(fd, 0, size); > } while (ret == EINTR); > + OsReleaseSignals(); > > if (ret != 0) { > close(fd);
This is still: Acked-by: Pekka Paalanen <pekka.paala...@collabora.co.uk> Thanks, pq
pgpXrI3ifDPu5.pgp
Description: OpenPGP digital signature
_______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel