On Mon 23-10-17 18:46:59, C.Wehrmeyer wrote: > On 23-10-17 18:13, Michal Hocko wrote: > > On Mon 23-10-17 16:00:13, C.Wehrmeyer wrote: > > > And just to be very sure I've added: > > > > > > if (madvise(buf1,ALLOC_SIZE_1,MADV_HUGEPAGE)) { > > > errno_tmp = errno; > > > fprintf(stderr,"madvise: %u\n",errno_tmp); > > > goto out; > > > } > > > > > > /*Make sure the mapping is actually used*/ > > > memset(buf1,'!',ALLOC_SIZE_1); > > > > Is the buffer aligned to 2MB? > > When I omit MAP_HUGETLB for the flags that mmap receives - no. > > #define ALLOC_SIZE_1 (2 * 1024 * 1024) > [...] > buf1 = mmap ( > NULL, > ALLOC_SIZE_1, > prot, /*PROT_READ | PROT_WRITE*/ > flags /*MAP_PRIVATE | MAP_ANONYMOUS*/, > -1, > 0 > ); > > In such a case buf1 usually contains addresses which are aligned to 4 KiBs, > such as 0x7f07d76e9000. 2-MiB-aligned addresses, such as 0x7f89f5e00000, are > only produced with MAP_HUGETLB - which, if I understood the documentation > correctly, is not the point of THPs as they are supposed to be transparent. yes. You can use posix_memalign or you can mmap a larger block and munmap the initial unaligned part. [...] -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>