Blocking MVar# primops not performing stack checks?

Andreas Klebinger klebinger.andreas at gmx.at
Wed Mar 4 12:47:26 UTC 2020


I just took a look at the implementation and it looks like you are right
Cheng.

I opened a ticket here: https://gitlab.haskell.org/ghc/ghc/issues/17893


Carter Schonwald schrieb am 02.03.2020 um 06:27:
> The simplest way to answer this is if you can help us construct a
> program, whether as Haskell or cmm, which tickles the failure you
> suspect is there ?
>
> The rts definitely gets less love overall.  And there’s fewer folks
> involved in those layers overall.
>
>
>
> On Wed, Feb 26, 2020 at 10:03 AM Shao, Cheng <cheng.shao at tweag.io
> <mailto:cheng.shao at tweag.io>> wrote:
>
>     Hi all,
>
>     When an MVar# primop blocks, it jumps to a function in
>     HeapStackCheck.cmm which pushes a RET_SMALL stack frame before
>     returning to the scheduler (e.g. the takeMVar# primop jumps to
>     stg_block_takemvar for stack adjustment). But these functions directly
>     bump Sp without checking for possible stack overflow, I wonder if it
>     is a bug?
>
>     Cheers,
>     Cheng
>     _______________________________________________
>     ghc-devs mailing list
>     ghc-devs at haskell.org <mailto:ghc-devs at haskell.org>
>     http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
>
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20200304/eee9e966/attachment.html>


More information about the ghc-devs mailing list