guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: heads-up: Haskell updates


From: Mark H Weaver
Subject: Re: heads-up: Haskell updates
Date: Sat, 17 Feb 2018 14:54:58 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Hi Danny,

Danny Milosavljevic <address@hidden> writes:

> On Thu, 15 Feb 2018 03:41:33 -0500
> Mark H Weaver <address@hidden> wrote:
>
>> Given that it's using #ifdef to detect this, I'd expect the result to
>> depend only on the _headers_ being used to compile, and not the actual
>> kernel running the build.
>
> Yes, that's precisely the problem.
>
> * The [glibc or kernel] headers determine whether the ghc compilation detects 
> it
> * The Linux kernel determines whether the functionality is actually present at
> runtime when any ghc program (like ghc-pkg) runs.
>
> Linus takes backward compatibility seriously - the constants
> or functionality are not going to vanish from Linux later.
>
> So the only problematic case is that the build process finds MADV_FREE
> but the running Linux doesn't yet have it and a ghc program runs on it.
>
> Reading MADV_DONTNEED docs again, MADV_DONTNEED pretty much does the same
> as MADV_FREE - but MADV_DONTNEED promises to make later accesses to the
> range succeed (by providing a new zero-filled page if necessary) while
> MADV_FREE promises to make them fail.
>
> So one could fall back to MADV_DONTNEED - should be fine, though a little 
> weird
> for an allocator.
>
> If that's the case and the build still fails, let's just apply the Haskell 
> patch
> to ghc (or update ghc if there's a newer release).

Unfortunately, the patch didn't fix the problem on Hydra, as I mentioned
in another message:

  https://hydra.gnu.org/build/2501179
  https://hydra.gnu.org/build/2501155

>> why it works for Ricardo but not for Andreas and Hydra.
>
> At runtime it depends on the Linux kernel version present whether
> the deallocation will work or not.
>
> So I suspect that Ricardo has a Linux >= 4.5 but Andreas and Hydra
> have a Linux < 4.5.  Is that correct?

This turned out to be incorrect.  Andreas said he was running a Debian
kernel, version 4.9.x.

So, your analysis makes sense and is much appreciated, but the available
evidence seems to suggest that something else might be going on.

Any more ideas?

      Mark



reply via email to

[Prev in Thread] Current Thread [Next in Thread]