질문
Linux에서 이벤트를 추적하기 위한 추적 파이프라인이 동시 판독기를 허용합니까?
문맥
RAS
일부 벤치마크를 실행하는 동안 하위 시스템에서 추적 정보를 얻으려고 합니다 . 이 하위 시스템은 추적 이벤트를 사용하여 하드웨어 오류 이벤트를 보고합니다.
이벤트를 가져오는 데 사용하는 도구RAS 데몬도구. 나는 이 도구가 tracing_pipe_raw
각 CPU에서 FIFO를 구독한다는 것을 알고 있습니다. 또한 벤치마크는 성능 이벤트를 구독합니다.나는 믿는다, 또한 동일한 채널을 통해 광고합니다.
tracing_pipe_raw
유사한 작품은 trace_pipe
다음과 같습니다.
출력은 "추적" 파일과 동일하지만 이 파일은 라이브 추적을 통한 스트리밍용으로 설계되었습니다. 이 파일에서 데이터를 읽는 것은 새 데이터가 검색될 때까지 차단됩니다. "추적" 파일과 달리 이 파일은 소비자입니다. 즉, 이 파일을 읽으면 현재 데이터를 더 많이 표시하기 위해 순차적으로 읽혀집니다. 이 파일에서 데이터를 읽으면 해당 데이터가 소비되며 순차 읽기를 통해 다시 읽혀지지 않습니다. "추적" 파일은 정적이며 추적기가 더 많은 데이터를 추가하지 않으면 읽을 때마다 동일한 정보를 표시합니다. "추적" 파일과 달리 이 파일을 읽기 위해 열면 일시적으로 추적이 비활성화되지 않습니다.
나는 소비자 파일로서의 FIFO 개념과 그 이유를 이해합니다.각 읽기는 다른 데이터를 생성합니다. 그러나 커널은 이러한 이벤트의 여러 구독자(독자)를 위해 어떤 조치를 취합니까?
답변1
나는 독자가 추적 파이프에 액세스하는 동안서로 간섭하게 된다.
이 동작을 방지하려면 instances
파이프라인이 추적되는 디렉터리에 폴더를 생성해야 합니다. 이렇게 하면 Linux 커널이추적 파이프라인의 복사본을 자동으로 생성새 디렉토리에.
새 인스턴스를 프로비저닝할 수 있습니다.거의기본 추적 파이프라인 및 기타 인스턴스와 독립적입니다. 이에 대한 자세한 내용은 여기에서 확인할 수 있습니다.파이프라인 기술의 추적 사례
알고 싶으신 분들을 위해라스 데몬, 파이프라인에서 다른 판독기를 안전하게 사용할 수 있도록 자체 인스턴스를 생성합니다. 그러나 다른 추적 소비자가 있을 수 있다고 생각되면 독자를 위한 추가 인스턴스를 만드는 것이 좋습니다.