디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

바보도 이해하는 conservative 가버너 - 기본만이라도 이해해보자

파란빤스갤로그로 이동합니다. 2025.11.17 02:00:42
조회 22 추천 0 댓글 0
														

https://github.com/torvalds/linux/blob/master/drivers/cpufreq/cpufreq_conservative.c

 

원래 리눅스 갤에 올린걸 조금 리폼했다.

일단 소스의 include구문들을 보자.


소스의 상단에, linux/slab.h라는 것이 있다.

slab이 무엇인지, slab, slub, slob 등 별 것이 다 있는데 여기선 일단 page 기반의 외부 단편화를 줄이기 위한 버디시스템들과 달리 slab이 쓰이는 이유만 볼 것이다.

어나니머스 마스크가 묘하게 컬트적이라 거슬리지만 글은 잘썼네.

https://jeongzero.oopy.io/132fed8f-5cfd-4f43-990c-61584744b4d0

 


간단히 말해 보자. 여러분에겐 색종이가 있다.

이 색종이는 10cm x 10cm이고, 여러분은 5cm x 10cm만큼 색칠하는 작업에 쓰였다.

또 그 다음에는 4cm x 10cm만큼 색칠.

얼마만큼 어떤 색종이에서 칠했는지 알고 싶다면(외부단편화 줄이기) 두 장을 쓰면 된다.

그러나 연속적으로, 최대한 한 장의 색종이 안에서 연속적으로 색칠하고 싶으면 이 때 색종이 한장으로 충분하다.

애초에 우리는 짧은 가버너 코드를 위해 크기가 작은 자료들만 조금씩 소수의 페이지에 몰텐데, 저기있는거 써야지 뭐. 내부 단편화 막는게 중요.


이 색종이(메모리 페이지)를 미리 작은 조각들로 나누어 같은 크기의 커널 객체들을 채워 넣으면, 작은 객체를 할당할 때마다 4KB 페이지 전체를 낭비하는 내부 단편화를 줄일 수 있다.

또한, 한 번 사용했던 색종이 조각(객체)을 버리지 않고 깨끗하게 정리해뒀다가 다시 쓰면, 매번 새 색종이 뭉치(버디 시스템)에 가서 새 페이지를 얻고 초기화하는 오버헤드를 없앨 수 있어서 빨라진다. 그래서 kzalloc같은 함수를 쓰기 위해 linux/slab.h를 쓰는 것은 이와 같은 까닭을 가진다.



39b5c52be78376b660b8f68b12d21a1d56162b23be


down_skip은 샘플링을 한 번 할때마다 카운터가 증가되는데,

DEF_SAMPLING_DOWN_FACTOR보다 이 값이 작으면 현재 부하 상황을 받아오지도 주파수를 내리지도 않고 일찍 종료한다.

DEF_FREQUENCY_UP_THRESHOLD는 기록된 부하 상황이 이 threshold를 지나면 주파수를 올린다는 뜻.

conservative는 서서히 스텝을 올리고 내리기 때문에 대기 시간(idle period)동안 한 스텝씩 주파수 테이블에서 올리고 낮춘다.



39b5c52be78076b660b8f68b12d21a1dc106760f45

ignore_nice_load_store는 말그대로 nice 우선순위를 무시할지 말지에 대해서 상태 저장을 하는 것인데...

한마디로 ignore nice load 한다는건 프로세스의 우선 순위 등을 고려하지 않고 부하를 계산하겠다, 그런거다.

39b5c52be78076b660b8f68b12d21a1dc106760f45

frequency step을 저장하는 함수가 있다.

주파수 발자국? 뭐라는거야? 싶지만 말 그대로다.

주파수 테이블에서 얼마만큼 주파수를 올리고 내릴지 "발자국"을 저장하는게 맞다.

정해진 발자국만큼만 움직이니, 튜닝을 하고싶다면 이 발자국을 부하 상황에 맞게 조정해도 된다.


그러니 이 가버너는 완만한 언덕을 천천히 오르내리는것처럼 동작한다고 보면 된다.

커널에서 현재 부하량을 바로 가져와서 반영시키는 schedutil 등과 비교하자면 나이많은 고령자가 천천히 등반하는걸 생각하면 된다.



2ebcc224eadc70f727f1c6bb11f11a39790728293d06ee2b3e



down_skip은 샘플링을 한 번 할때마다 카운터가 증가되는데,

DEF_SAMPLING_DOWN_FACTOR보다 이 값이 작으면 현재 부하 상황을 받아오지도 주파수를 내리지도 않고 일찍 종료한다.

DEF_FREQUENCY_UP_THRESHOLD는 기록된 부하 상황이 이 threshold를 지나면 주파수를 올린다는 뜻.

conservative는 서서히 스텝을 올리고 내리기 때문에 대기 시간(idle period)동안 한 스텝씩 주파수 테이블에서 올리고 낮춘다.
^
요놈 들어가있다.

load 가 DEF_SAMPLING_DOWN_THRESHOLD보다 부하 낮고 down_skip 조건에서 일찍 리턴 안되었을때 내려가고

DEF_FREQUENCY_UP_THRESHOLD보다 높을때 스텝 올린다.

절대 DOWN_FACTOR랑 DOWN_THRESHOLD 헷갈리지 말자.



================생각할거리===================

일단 나는 명문대생도 아니고 평범한 지방대생이다. 나쁘게 말하면 잡대 중의 잡대다.

솔직히 내가 생각해도 거의 경계선 아닌가? 싶을 정도로 난 멍청한거같다.

그런 내 콩알만한 두뇌로 생각해볼만한 거리를 만들고, 또 구현하며 가지고 놀았던 것은 이러하다.


- 전류 공급원이 AC인지 배터리인지 구분해서 배터리일때는 up/down threshold를 보다 보수적으로 잡아서 최대한 주파수 변경을 더디게 해보자.

- load를 지수이동평균으로 누적해서 누적된 로드값을 사용해서 더 보수적으로 만들어보자. 잠깐 부하가 튀는 상황에서 평활 가능하다.

- 현재 누적 부하와 직전 누적 부하의 이동량을 비교해서, 급격한 부하 상황시에는 공격적이고 실시간성을 띄는 알고리즘을 채택하여 더 보수적으로 변한 전력소모를 상쇄하자.


사람에 따라서는 나처럼 이동식 기기들을 위한 튜닝을 할 수도 있고, 게이밍을 위한 공격적인 튜닝을 할 수도 있다.

그런데 게이밍은 schedutil쓰면 되고 GPU의존도가 높아서 누가 하려고 할지 모르겠네..


아무튼 conservative는 비교적 이와 같이 쉬운 구조로 되어있고, 내가 언급한 흐름대로 코드를 읽어보면 몇 줄 되지 않는다.


리눅스를 몇 년 정도 사용한 중급 유저라면 튜닝하는 데 별 어려움은 없을 것으로 보인다.

원래는 리눅스갤에 올렸는데, 프로그래밍 성격이 강해서 살을 붙여서 여기에 올린다.


P.S) 초보적인 내용이고, 부정확할 수 있습니다.

자세한 것은 ChatGPT에게..

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 대박 날 것 같아서 내 꿈에 나와줬으면 하는 스타는? 운영자 25/11/17 - -
AD 겨울가전 SALE! 쿨한 겨울 HOT세일 운영자 25/11/12 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48700 65
2903006 취미코딩 갤러리가 오픈했습니다 Mosaic갤로그로 이동합니다. 05:41 1 0
2902995 건축계 노벨상 ‘프리츠커상’ 야마모토 리켄 오세훈 종묘 초고층 건물 비판 발명도둑잡기(118.216) 05:04 9 0
2902994 살인적인 베를린 주거비‥시민들 "민간 주택 공공 소유로 바꾸자" 발명도둑잡기(118.216) 05:02 10 0
2902992 성 ㅍㅎ 가해자가 살고있는 ㅇㅇ(123.111) 04:16 12 0
2902990 민주당 맘다니 논평 검색 결과 발명도둑잡기(118.216) 03:51 14 0
2902980 시험성적만으로는 인성에 문제있는 사람을 못 거르는데 방법은? 발명도둑잡기(118.216) 03:29 17 0
2902966 러스트 빠돌이들, 수년간 나 열라 까더니만 ㅋㅋㅋ 나르시갤로그로 이동합니다. 02:58 20 0
2902965 박근혜 풍자 논란 '공주는 외로워' 김자옥 별세 11 주기 발명도둑잡기(118.216) 02:57 16 0
2902943 젤렌스키 측근 집에는 ‘황금 변기’… 우크라 비리 일파만파 발명도둑잡기(118.216) 02:05 14 0
바보도 이해하는 conservative 가버너 - 기본만이라도 이해해보자 파란빤스갤로그로 이동합니다. 02:00 22 0
2902939 천안 이랜드 물류센터 화재 사실상 '전소'…보험사는 '한화손보' 발명도둑잡기(118.216) 01:59 15 0
2902933 러스트를 할 줄 안다면 현상금 사냥꾼이 되어보자! 에이도비갤로그로 이동합니다. 01:48 28 1
2902931 막상 오늘이 마지막 출근이라 생각하니 기분이 묘하구나. [3] 프갤러(110.8) 01:33 29 1
2902930 미국을 뒤흔드는 도박, 성산업, 마약 발명도둑잡기(118.216) 01:24 13 0
2902924 주작기 사고싶은데 어디서 구함? [1] ㅇㅇ(118.235) 00:55 24 0
2902918 아 이제 이해했다. 요즘 왜 백엔드에 파이썬을 쓰는지. 프갤러(110.8) 00:44 49 1
2902914 근데 모던 cpp는 실패할 수밖에 없어 [9] 프갤러(110.8) 00:36 56 1
2902907 나도 현역땐 왜 기업들이 모던 C++의 가치를 안알아주지? 억울해했는데 [2] chironpractor갤로그로 이동합니다. 00:22 50 0
2902901 나도 이제 새 직장 구해야해서 잡코리아 쭉 보는데 [20] 프갤러(110.8) 00:06 95 0
2902897 불가능한거 할수있냐고하는데 [10] ㅇㅇ(219.248) 11.16 61 0
2902893 여자한테 인기 많은 남자 특징 발명도둑잡기(118.216) 11.16 25 0
2902892 C랑 CPP도 이제 정복되나? [1] ㅇㅇ(125.251) 11.16 48 0
2902890 법과 기관의 도움을 받는 걸 꺼리면 안돼 [2] 에이도비갤로그로 이동합니다. 11.16 48 1
2902879 전자공, 컴공, 솦웨학과 각 학과 차이점이 뭐냐? [1] ㅇㅇ(125.251) 11.16 37 0
2902878 한국 한국은행과 기타 상업은행의 신용창출 액수 비교 발명도둑잡기(118.216) 11.16 21 0
2902875 이기적인 사람 중간, 이타적인 사람 비율 발명도둑잡기(118.216) 11.16 40 0
2902872 오래간만에 왔는데 ㅆㅇㅆ 어디감? [2] 프갤러(183.101) 11.16 45 0
2902870 ai로 코딩하니까 큰일이네 프갤러(125.131) 11.16 35 0
2902867 가난의 근본적인 해결법 당사자와 사회의 책임 다 발명도둑잡기(118.216) 11.16 30 0
2902866 가난으로 불안하고 무서워하는 사람을 위로하는 태도 전문적으로 발명도둑잡기(118.216) 11.16 14 0
2902864 토끼가 발명도둑잡기(118.216) 11.16 13 0
2902862 코인 패닉장인데 돈을벌고있어요 ㅇㅅㅇ [1] hiya갤로그로 이동합니다. 11.16 52 1
2902860 레미레미놀래미 ♥KiTTY냥덩♥갤로그로 이동합니다. 11.16 13 0
2902859 경제 불황 시기에 인기 더 높아지는 노래, 영상 특징 발명도둑잡기(118.216) 11.16 42 0
2902858 어디 새로운 도파민 새로운 감정 없낭? ♥KiTTY냥덩♥갤로그로 이동합니다. 11.16 34 0
2902856 님들 html 첨 배웠는데 [6] 2D전도사갤로그로 이동합니다. 11.16 59 0
2902855 광해 영화도 지금 다시 보니까 [1] 프갤러(211.210) 11.16 24 0
2902854 홈페이지 제작만 외주로 하고 [3] 프갤러(211.234) 11.16 47 0
2902853 일하기 싫다 ㅇㅇ(14.5) 11.16 18 0
2902852 kitty냥덩 발명도둑잡기 갤에서 꺼졌으면 [1] 박민준갤로그로 이동합니다. 11.16 30 2
2902851 도로? ♥KiTTY냥덩♥갤로그로 이동합니다. 11.16 16 0
2902848 '홍장원 메모 거짓말'이라던 조태용 구속…"사필귀정" 발명도둑잡기(118.216) 11.16 15 0
2902845 도로롱.. ㅠ ㅅ ㅠ ♥KiTTY냥덩♥갤로그로 이동합니다. 11.16 21 0
2902843 꿀잼 도파민 만화 찾앗당 이기양! ♥KiTTY냥덩♥갤로그로 이동합니다. 11.16 16 0
2902842 오예 내일은 월요일 cvs.갤로그로 이동합니다. 11.16 16 0
2902841 이젠 야한거 봐도 반응 안 오넹.. [4] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.16 69 0
2902839 냥덩이는 건강하지 않습니당 [2] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.16 30 0
2902837 나씻완⭐+ ♥KiTTY냥덩♥갤로그로 이동합니다. 11.16 32 0
2902836 저그 경상도 창원 땅에 원님이 있었는디~ 발명도둑잡기(118.216) 11.16 17 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2