[RFC] Using large pages for large hash tables

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 17 11:31:23 PDT 2016


On 17 October 2016 at 13:23, Hal Finkel <hfinkel at anl.gov> wrote:
> ----- Original Message -----
>> From: "Rafael EspĂ­ndola via llvm-commits" <llvm-commits at lists.llvm.org>
>> To: "llvm-commits" <llvm-commits at lists.llvm.org>
>> Cc: "Aaron Ballman" <aaron.ballman at gmail.com>
>> Sent: Monday, October 17, 2016 10:38:02 AM
>> Subject: [RFC] Using large pages for large hash tables
>>
>> I did a quick and dirty experiment to use large pages when a hash
>> table gets big. The results for lld are pretty impressive (see
>> attached file, but basically 1.04X faster link of files with debug
>> info).
>
> +    R = madvise(Buckets, Alloc, MADV_HUGEPAGE);
> +    assert(R == 0);
>
> I suspect you just did this because you were experimenting, but just in case: Do you really care whether this succeeds? I suspect we don't want to error here.

That is correct. This was just a quick hack to see if it would work. A
real implementation should just gracefully handle large pages not
being available.

> I wonder if there are other places in LLVM/Clang/etc. where we should do this as well.

Quite possibly. I will try to implement an API that works on linux and
windows and post for review.

Cheers,
Rafael


More information about the llvm-commits mailing list