Skip to content

[P3-vm] Stack Growth #46

Description

@RedHong56

Goal

  • Project 3에서 동적 스택 확장 지원
  • page fault 시 스택 접근으로 판단되면 anonymous page 할당
  • 스택 최대 크기 1MB 제한 적용
  • user → kernel 진입 시 RSP 저장하여 kernel-mode fault도 처리 가능하게 하기
  • 정상적인 fault: f->rsp 사용
  • kernel-mode fault: thread에 저장해둔 user_rsp 사용

Plan

  • vm_try_handle_fault()

    • fault addr이 사용자 스택 범위(1MB 이내)인지 확인
    • addr >= rsp - 8 등 휴리스틱으로 “스택 접근” 여부 판단
    • 조건 만족 시 vm_stack_growth(addr) 호출
  • vm_stack_growth()

    • addr 페이지 단위로 내림
    • 필요한 스택 페이지들을 anonymous page로 추가
    • PHYS_BASE 기준 1MB 초과 금지

Tests

Links


Notes

  • 핵심: 스택처럼 보이는 접근만 확장, RSP 정확히 유지, 1MB 제한 준수.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions