자유게시판

SMP 관련 질문

작성자
유정우
작성일
2017-04-13 00:30
조회
482
안녕하세요

항상 잘 보고 있습니다. 제가 궁금한 점이 있어 이렇게 글을 쓰게됩니다.

저는 일단 hypervisor를 개발하고있습니다. 이에 따라 PSCI 를 통해 secondary core를 enable 하게 되었고,

총 2개의 pcpu를 점유하고있는 상태입니다. (cpu2개를 각각 cpu0, cpu1이라고 지칭하겠습니다.)

이때, cpu0에서 작성한 memory 내용이 cpu1에서는 안보이는 상황이 발생하는데 이때 제가 주의해야할 점이나, 놓칠만한 점이 혹시 있으시다면

자문을 좀 구하고싶습니다...
전체 1
  • 2017-04-14 09:56
    cpu0에서 작성한 내용이 cpu1에서 안보인다는 말은 제가 다시 해석해 보면 cpu0가 리눅스 부트업프로세스중에 생성 및 조작한 메모리 페이지를 cpu 1의 하이퍼바이저로 점프한 후 리눅스 페이지가 access되지 않는다는 것으로 인지를 하였습니다. 하이퍼바이저가 아니라면 cpu1이든 cpu0든 메모리는 공유하고 커널 매핑도 공유된 상태기 때문에 커널 메모리가 안보일리가 없습니다.

    아마도 hypervisor에서 디버깅을 하는 것으로 보입니다. hypervisor는 별도의 mmu를 사용하여 다시 한 번 매핑하여 사용하므로 리눅스에서 사용했던 정보를 그대로 access할 수 없을 것입니다. PSCI를 통해 하이퍼바이저의 secondary on 루틴에서 각종 자원등 관리할 수 있는 것들을 리눅스보다 더 먼저 손을 보고 그 후 리눅스 함수 sconadry_startup()을 호출하게되는 것으로 알고 있습니다.

    이 관점에서 좀 더 확인하여 보시기 바랍니다.