boostorg / boostorg/context

Floating point registers are not preserved

Đang mở
#232 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Assembly
Star
370
Fork
186
Merge trung bình
24 ngày 6 giờ
Pull request đã merge (30 ngày)
1

Mô tả

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

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.