Opened 20 months ago

Last modified 20 months ago

#11566 new bug

I don't need madvise MADV_DONTNEED

Reported by: mfox Owned by:
Priority: normal Milestone:
Component: Compiler Version: 8.1
Keywords: Cc: erikd
Operating System: Linux Architecture: aarch64
Type of failure: Incorrect warning at compile-time Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:

Description (last modified by rwbarton)

Many tests fail because of a warning in rts/posix/OSMem.c

unable to decommit memory: function not implemented

The reason it says "function not implemented" is that the function madvise(..., MADV_DONTNEED) is not implemented.

This is on a stock Ubuntu LTS 14.04 machine. The only interesting thing about it is that it's running on a pre-production armv8 processor with a beta 4.2 guest kernel.

Change History (6)

comment:1 Changed 20 months ago by mfox

I can make a patch easily deleting the call seems fine. I just wonder if it affects another platform. Should I ifdef it out for Linux? For aarch64? For Linux && aarch64? Who uses this?

comment:2 Changed 20 months ago by rwbarton

Description: modified (diff)
Summary: I don't need madvise DONT_NEEDI don't need madvise MADV_DONTNEED

If the two-stage allocator isn't working on your system, you can disable it with configure --disable-large-address-space.

comment:3 Changed 20 months ago by mfox

Thanks. Should this be default for arm64? Is it something hardware can't support, needs kernel improvement or something that will eventually work?

comment:4 Changed 20 months ago by rwbarton

Cc: erikd added

Good question. I don't know. erikd?

comment:5 Changed 20 months ago by erikd

Large address space should work on Arm64. At least it does on the server grade machine that I'm, testing on. Interestingly I had reduce the mmap size from 1TB to 1/4 TB (see commit 38c98e4f6).

I'm currently doing my testing on base machine with Ubuntu 15.04 but doing all my testing in a Debian Chroot. The base kernel is 3.19.0-31-generic #36-Ubuntu SMP.

Can you tell tell which tests fail with the above error message?

Last edited 20 months ago by erikd (previous) (diff)

comment:6 Changed 20 months ago by mfox

@erikd I will tell you which ones fail but it will take a while. The reason is I can't run with -j24 or I get spurious failures. So I have to run make test for a few hours with and without the patch. We are both interested in servers with large amounts of memory.

Note: See TracTickets for help on using tickets.