boostorg / boostorg/context

Floating point registers are not preserved

Offen
#232 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Assembly
Sterne
370
Forks
186
Ø Merge
24 T. 6 Std.
Gemergte PRs (30 T.)
1

Beschreibung

Our project (https://github.com/DARMA-tasking/vt) uses Boost context for our task-based runtime system for scientific applications in HPC. Recently, we found a bug in a scientific application that uses our library after a context switch that we finally figured was due to not preserving nonvolatile floating point registers (in this case we were running on PPC64, but I think the problem is more prevalent). According to the POWER9 specification, FP14-FP31 are nonvolatile and must be preserved for correct context switching (https://www.ibm.com/docs/en/aix/7.2?topic=overview-register-usage-conventions).

I've noticed looking back in the history that floating point preservation was dropped around v1.61. The argument for preserving in `jump_fcontext` was dropped. I'm trying to understand why this functionality was lost.

@olk

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.