----- Original Message -----
> Updated Branches:
>   refs/heads/master 07466943b -> f17658ac4
> 
> 
> TS-1892: Move msync and friends to ink_memory.h
> 
> ink_memory.h is really a better place for memory management APIs.
> Also rename them from safe_*() to ats_*() to fit with our standard
> conventions.
> 
[snip]
> Branch: refs/heads/master
> Commit: f17658ac4d8b55a2a558ae1cc988a2295d3b1b77
> Parents: 0746694
> Author: James Peach <[email protected]>
> Authored: Fri May 10 15:47:51 2013 -0700
> Committer: James Peach <[email protected]>
> Committed: Mon May 13 10:26:17 2013 -0700
> 
> ----------------------------------------------------------------------
>  CHANGES                                  |    2 +
>  configure.ac                             |    1 +
>  iocore/eventsystem/P_UnixSocketManager.h |   25 ---------
>  iocore/eventsystem/SocketManager.cc      |   67
>  -------------------------
>  iocore/hostdb/MultiCache.cc              |   16 +++---
>  lib/ts/ink_memory.cc                     |   56
>  +++++++++++++++++++++
>  lib/ts/ink_memory.h                      |   52 +++++++++++++++----
>  7 files changed, 109 insertions(+), 110 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/f17658ac/CHANGES
> ----------------------------------------------------------------------
> diff --git a/CHANGES b/CHANGES
> index 186f001..46cb558 100644
> --- a/CHANGES
> +++ b/CHANGES
> @@ -2,6 +2,8 @@
>    Changes with Apache Traffic Server 3.3.3
>  
>  
> +  *) [TS-1892] Move msync APIs to ink_memory.h.
> +
>    *) [TS-1890] Authproxy plugin caching and reliability fixes.
>  
>    *) [TS-1868] TSREMAP_*_STOP does not stop remap plugin evaluation
>    chain.
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/f17658ac/configure.ac
> ----------------------------------------------------------------------
> diff --git a/configure.ac b/configure.ac
> index fe90f88..c569669 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1337,6 +1337,7 @@ AM_CONDITIONAL([BUILD_HTTP_LOAD], [test
> x"$ac_cv_func_epoll_ctl" = x"yes"])
>  #
>  -----------------------------------------------------------------------------
>  # 5. CHECK FOR HEADER FILES
>  
> +AC_CHECK_HEADERS([sys/types.h sys/mman.h])
>  TS_FLAG_HEADERS([sys/epoll.h \
>                    sys/event.h \
>                    sys/param.h \

What's the difference between those two?


> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/f17658ac/lib/ts/ink_memory.cc
> ----------------------------------------------------------------------
> diff --git a/lib/ts/ink_memory.cc b/lib/ts/ink_memory.cc
> index 90450c6..600c24d 100644
> --- a/lib/ts/ink_memory.cc
> +++ b/lib/ts/ink_memory.cc
> @@ -159,3 +159,59 @@ ats_mallopt(int param ATS_UNUSED, int value
> ATS_UNUSED)
>  #endif // ! TS_HAS_JEMALLOC
>    return 0;
>  }
> +
> +int
> +ats_msync(caddr_t addr, size_t len, caddr_t end, int flags)
> +{
> +  unsigned pagesize = ats_pagesize();
> +
> +  // align start back to page boundary
> +  caddr_t a = (caddr_t) (((uintptr_t) addr) & ~(pagesize - 1));
> +  // align length to page boundry covering region
> +  size_t l = (len + (addr - a) + (pagesize - 1)) & ~(pagesize - 1);
> +  if ((a + l) > end)
> +    l = end - a;                // strict limit
> +#if defined(linux)
> +/* Fix INKqa06500
> +   Under Linux, msync(..., MS_SYNC) calls are painfully slow, even on
> +   non-dirty buffers. This is true as of kernel 2.2.12. We sacrifice
> +   restartability under OS in order to avoid a nasty performance hit
> +   from a kernel global lock. */
> +#if 0
> +  // this was long long ago

if that is the case, we should remove it.

> +  if (flags & MS_SYNC)
> +    flags = (flags & ~MS_SYNC) | MS_ASYNC;
> +#endif
> +#endif
> +  int res = msync(a, l, flags);
> +  return res;
> +}
> +
> +int
> +ats_madvise(caddr_t addr, size_t len, int flags)
> +{
> +#if defined(linux)
> +  (void) addr;
> +  (void) len;
> +  (void) flags;
> +  return 0;

wut?

> +#else
> +  unsigned pagesize = ats_pagesize();
> +  caddr_t a = (caddr_t) (((uintptr_t) addr) & ~(pagesize - 1));
> +  size_t l = (len + (addr - a) + pagesize - 1) & ~(pagesize - 1);
> +  int res = 0;
> +  res = madvise(a, l, flags);
> +  return res;
> +#endif
> +}
> +
> +int
> +ats_mlock(caddr_t addr, size_t len)
> +{
> +  unsigned pagesize = ats_pagesize();
> +
> +  caddr_t a = (caddr_t) (((uintptr_t) addr) & ~(pagesize - 1));
> +  size_t l = (len + (addr - a) + pagesize - 1) & ~(pagesize - 1);
> +  int res = mlock(a, l);
> +  return res;
> +}
> 

-- 
Igor Galić

Tel: +43 (0) 664 886 22 883
Mail: [email protected]
URL: http://brainsware.org/
GPG: 6880 4155 74BD FD7C B515  2EA5 4B1D 9E08 A097 C9AE

Reply via email to