Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
585
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.08 KB | None | 0 0
  1. diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
  2. index 1ab18d0..572d7f8 100644
  3. --- a/ext/opcache/ZendAccelerator.c
  4. +++ b/ext/opcache/ZendAccelerator.c
  5. @@ -2515,7 +2515,8 @@ static int accel_remap_huge_pages(void *start, size_t size, const char *name, si
  6.         MAP_PRIVATE | MAP_ANONYMOUS,
  7.         -1, 0);
  8.     if (mem == MAP_FAILED) {
  9. -       zend_error(E_WARNING, ACCELERATOR_PRODUCT_NAME ": mmap failed: %s (%d)", strerror(errno), errno);
  10. +       zend_error(E_WARNING,
  11. +               ACCELERATOR_PRODUCT_NAME " huge_code_pages: mmap failed: %s (%d)", strerror(errno), errno);
  12.         return -1;
  13.     }
  14.     memcpy(mem, start, size);
  15. @@ -2533,23 +2534,35 @@ static int accel_remap_huge_pages(void *start, size_t size, const char *name, si
  16.             MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED,
  17.             -1, 0);
  18.         if (ret == MAP_FAILED) {
  19. -           zend_error(E_WARNING, ACCELERATOR_PRODUCT_NAME ": mmap failed: %s (%d)", strerror(errno), errno);
  20. +           zend_error(E_WARNING,
  21. +                   ACCELERATOR_PRODUCT_NAME " huge_code_pages: mmap(FIXED) failed: %s (%d)",
  22. +                   strerror(errno), errno);
  23.             munmap(mem, size);
  24.             return -1;
  25.         }
  26.         if (-1 == madvise(start, size, MADV_HUGEPAGE)) {
  27. -           zend_error(E_WARNING, ACCELERATOR_PRODUCT_NAME ": madvise failed: %s (%d)", strerror(errno), errno);
  28. +           zend_error(E_WARNING,
  29. +                   ACCELERATOR_PRODUCT_NAME " huge_code_pages: madvise(HUGEPAGE) failed: %s (%d)",
  30. +                   strerror(errno), errno);
  31.             munmap(mem, size);
  32.             return -1;
  33.         }
  34.  #  else
  35. -       zend_error(E_WARNING, ACCELERATOR_PRODUCT_NAME ": mmap failed: %s (%d)", strerror(errno), errno);
  36. +       ret = mmap(start, size,
  37. +               PROT_READ | PROT_WRITE | PROT_EXEC,
  38. +               MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
  39. +       if (ret == MAP_FAILED) {
  40. +           /* this should never happen */
  41. +       }
  42. +       memcpy(start, mem, size);
  43. +       zend_error(E_WARNING,
  44. +               ACCELERATOR_PRODUCT_NAME "huge_code_pages: mmap(HUGETLB) failed: %s (%d)", strerror(errno), errno);
  45.         return -1;
  46.  #  endif
  47.     }
  48.  
  49.     if (ret == start) {
  50. -       memcpy(start, mem, size);
  51. +       memcpy(start, mem, size);
  52.         mprotect(start, size, PROT_READ | PROT_EXEC);
  53.     }
  54.     munmap(mem, size);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement