Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guest pc, lr의 data abort 핸들링 이슈 #244

Open
kim6515516 opened this issue Oct 19, 2015 · 6 comments
Open

Guest pc, lr의 data abort 핸들링 이슈 #244

kim6515516 opened this issue Oct 19, 2015 · 6 comments

Comments

@kim6515516
Copy link
Collaborator

hyp_hvc_service 루틴에서
srt가 14(lr), 15(pc)인 경우에 대해서 처리가 안 되어 있음.

guest 가 아래 와 같은 어셈블리를 수행하는 중 Data abort 가 발생하면
add pc r0 #(데이타 어보트 주소)

하이퍼바이저가 게스트의 PC, LR 값을 제대로 핸들링 할수 없음.
라즈베리포팅에서 생긴 이슈

enum hyp_hvc_result _hyp_hvc_service(struct arch_regs *regs)
{
,,,,
srt = (iss & ISS_SRT_MASK) >> ISS_SRT_SHIFT;

// 아래코드는 임시방편으로 만든 코드
if (srt == 14)
info.value = &data;
else if (srt == 15)
info.value = &(regs->pc);
else
info.value = &(regs->gpr[srt]);

@Wonseok
Copy link
Collaborator

Wonseok commented Nov 3, 2015

오케이. 이건 해결해야하는 문제고 아직 Trap Handler가 다 구현 안되어서 발생하는 문제야.

@kim6515516
Copy link
Collaborator Author

미구현이랑 별개의 사항. 버그임

@Wonseok
Copy link
Collaborator

Wonseok commented Nov 3, 2015

원래 ARM VE가 Guest OS의 LR이랑 PC랑 건들필요가 없으니깐 버그가 아닌거 같은데? 어떻게 이게 버그지?

@Wonseok
Copy link
Collaborator

Wonseok commented Nov 3, 2015

그리고 누가 PC에 Add 명령어로 접근하나 그게 버그 같음

@kim6515516
Copy link
Collaborator Author

pc 는 제가 쉽게 이해하시라고 쓴거고 직접적인 코드는 라즈비안 커널에 있습니다. LR관련된 문제 사항이었고, lr 처리 문제는 인규형한테 물어보니 인규형도 모니터링 구현 하면서도 생겼던 문제구요. 직접 전화하셔서 확인해보세요. 그리고 hyp_hvc_service()에서 코프로세스나 wfi 처리같은게 미구현 문제지, 지금 data abort 핸들링은 구현되어 있는데 여기서 문제가 생긴건 버그죠.

@Wonseok
Copy link
Collaborator

Wonseok commented Nov 4, 2015

오케이

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants