Barrier 가 꼭 필요한지 질문드립니다.

콤퓨타 2020.11.15 18:21 조회 수 : 1737

안녕하세요 스터디를 하다가 코드 (kernel version: v5.9) 가 꼭 필요한지를 정확히 몰라서 질문 올립니다.

$(kernel_root)/arch/arm64/kernel/head.S 에서

 

SYM_FUNC_START_LOCAL(__create_page_tables) 함수안에

 

adr_l    x6, vabits_actual
str    x5, [x6]
dmb    sy
dc    ivac, x6

 

동작하는 platform에서 지원하는 가상주소 비트 수를 읽어서  vabits_actual 이라는 곳에 저장하는 코드입니다.

이 코드가 동작할 때에 D-cache 는 disable되어있는 상태이지만 나중에 d-cache를 enable 했을 때 stale한 data가 있으면 예상치 못한 data를 읽을 수도 있기에 dcache invalidate해주는 부분은 이해를 했습니다.

 

이 때, dmb sy를 통해서 vabits_actual에 값을 value를 저장하는 코드와 d-cache invalidate 해주는 코드의 순서를 보장해주고 있습니다. 근데 d-cache가 disable되어있는 상태에서 이 순서가 왜 보장되어야 하는지 잘 모르겠습니다.

 

선배님들에게 질문해봅니다.

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 강좌, 팁, 정보등에 대해 올리는 게시판입니다. woos 2016.04.09 246
129 Pro Git 2장, 3장 요약입니다. 아폴로 2013.11.05 52123
128 포토샵 웹버전입니다. [1] 강진성 2010.05.14 40685
127 맥에서 리눅스 커널 빌드하기 [2] K 2013.06.30 24823
126 #pragma에 관련해서.. [2] 원민수 2006.07.19 20782
125 kernel 2.6의 kzalloc함수 (원민수 씀) 백창우 2007.02.23 19337
124 태훈님에 이어. ARM kernel 참고자료 백창우 2007.11.05 19014
123 리눅스 커널 스터디 참고자료 (x86) [4] 리누즈박 2013.05.06 18397
122 누가 나를 호출했는지 찾기 + 포인터를 심볼 이름으로 변환하여 출력하기 [1] 지현구 2007.02.27 17863
121 systemtap 관련 간단한 소개입니다. 남용우 2007.11.06 17058
120 허접 영어 사전입니다. [3] 백창우 2008.04.22 16092
119 define을 사용한 version 처리. 원민수 2008.02.09 15026
118 여기는 팁, 기타 정보를 올리는 곳입니다. 백창우 2006.06.05 14751
117 커널 분석용 vim 플러그인 설치하기 (Rev.4) [21] 리누즈박 2013.06.30 13973
116 막강 디버깅 매크로 DM_PRINT() [4] file 배상경 2010.11.23 12045
115 if문에 사용하는 likely와 unlikely 함수의 용도 [1] 아폴로 2014.03.05 11176
114 조금은 묵직한 시스템, 뇌감시장치 김성현2 2011.11.17 10585
113 리눅스 커널 코딩 스타일입니다. [1] 아폴로 2013.09.13 10147
112 xen 4.1 설치 방법(우분투 11.04) [2] 이상철 2012.11.14 10109
111 Kernel 소스코드 github에 복사하는 법 [6] 리누즈박 2013.06.16 9837
110 돈되는 이야기?! 삼성 손가락 혈압계 [1] 김성현2 2011.10.20 9493
XE Login