최근 PCIe 버스 표준을 완전히 준수하지 않는 맞춤형 하드웨어로 작업하고 있는데 장치에서 무언가를 읽으면 버스 오류가 발생하고 Linux 시스템 검사 예외가 발생합니다. 이런 일이 발생하면 MCE를 트리거하는 내 애플리케이션의 pthread가 종료됩니다. 동일한 프로세스의 다른 모든 스레드는 계속됩니다. MCE인 동안 종료된 스레드가 보유했던 모든 뮤텍스 잠금은 해제되지 않으며, 이로 인해 애플리케이션 교착 상태가 발생하는 경우가 많습니다.
MCE에 대한 Linux 커널의 동작을 설명할 수 있는 사람이 있습니까? 다중 스레드 프로세스에서 단일 스레드를 중지하는 것이 예상되거나 의도되었습니까? 나는 커널이 상위 프로세스를 활성 상태로 유지하면서 LWP를 일방적으로 종료할 수 있는 다른 상황을 알지 못하므로 이에 대해 더 알고 싶습니다.