rts: Ensure we always give MADV_DONTNEED a chance in osDecommitMemory
rts: Ensure we always give MADV_DONTNEED a chance in osDecommitMemory

As described in #12865, newer Linux kernels support both MADV_FREE and
MADV_DONTNEED. Previously a runtime would fail to try MADV_DONTNEED if
MADV_FREE failed (e.g. since the kernel which the image is running on
doesn't support the latter). Now we try MADV_DONTNEED if MADV_FREE
failed to ensure that binaries compiled on a kernel supporting MADV_FREE
don't fail on decommit.

Test Plan: Validate

Reviewers: austin, erikd, simonmar

Reviewed By: simonmar

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D2780

GHC Trac Issues: #12865

ezyang/ghc,olsner/ghc,mettekou/ghc,ezyang/ghc,mettekou/ghc,ezyang/ghc,shlevy/ghc,sdiehl/ghc,olsner/ghc,sdiehl/ghc,sdiehl/ghc,shlevy/ghc,mettekou/ghc,olsner/ghc,olsner/ghc,sdiehl/ghc,shlevy/ghc,sdiehl/ghc,shlevy/ghc,olsner/ghc,sdiehl/ghc,ezyang/ghc,ezyang/ghc,mettekou/ghc,shlevy/ghc,shlevy/ghc,mettekou/ghc,sdiehl/ghc,shlevy/ghc,mettekou/ghc,olsner/ghc,olsner/ghc,ezyang/ghc,ezyang/ghc,mettekou/ghc