DynamoRIO / DynamoRIO/dynamorio

CRASH(8.0.18670) when running a binary with SVE instructions.

Open
#4,742 0 comments 0 reactions 1 assignee Claimed by @AssadHashmi View on GitHub
Bug-DRCrash OpSys-AArch64
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 18h
Merged PRs (30d)
30

Description

I am running a test MPI application in an SVE machine (ARM64FX) linked against an MPI library (fuji/1.2.26b) that contains SVE instructions.

The scenarios are:
- Running the application natively or with -no_inject works.
- Running the application with plain DR fails (segmentation fault).
- Running the application with debug fails (loglevel < 5: segfault, 5: rank order violation error).
- Running the application with ArmIE's 20.3 and the SVE emulation tool works.
- Running DR with a non-MPI binary works

It working natively and in ArmIE seems to indicate that it is related to the SVE instructions.

I attach the [execution_log.txt](https://github.com/DynamoRIO/dynamorio/files/6002527/execution_log.txt) and the simple source code (it happens with other MPI applications, but this simple test verifies it is not due to the test code).

I started the conversation in the [group](https://groups.google.com/g/dynamorio-users/c/UDQHVXYCo0A/m/ykPFsoYlCQAJ), I realize it is very little information but the -dumpcore_mask flag does not seem to generate any dump. Could you tell me what information I could provide you?

Kind Regards,
Francesc.

Sample code:
```
#include
#include

int main(int argc, char *argv[]) {

int rank, size;
MPI_Init(&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
if (rank == 0) {
std::cout << "Rank " << rank << " size " << size << std::endl;
}
MPI_Finalize();
return 0;
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.