SetCPU에 대한 말인데요, 요새 오버클럭 커널이 올라오니까 SetCPU에 대한 관심들도 같이 높아지시면서 이상하게 알려진 부분이 하나 있습니다.
바로 Scaling에서 powersave에 대한건데.. 이거, 최대클럭으로 쭉 올려놓고 powersave로 하면 클럭은 그대로 최대인데 powersave이니까 전압이라도 덜써서 전력 소비를 줄일 수 있을거같이 생겼지요?
하지만 그런게 아닙니다. 이 powersave는 그저 고 위에 최대/최소 클럭 결정해준것중에 최소쪽의 클럭으로 클럭을 고정시키는 Scaling일뿐이에요. 전압의 경우는 커널 소스에서 max8998_consumer.c에 보시면 중간쯔음에 클럭에 대한 전압 테이블이 있고, 이거대로만 적용됩니다...
반대로 performance의 경우는 최대/최소중에 최대 클럭쪽으로 클럭 고정시키는거구요.
그러니까 쉽게말해 powersave 해놓고 최대/최소 1000으로 맞추는것보다 performance 해놓고 최대/최소 800으로 맞추는게 같은 부하가 걸렸을때 전력 소비가 적다는거지요.
근데 그럴거면 그냥 100/100으로 해놓고 파워세이브나 퍼포먼스로 해놓고 쓰지 왜 높여서 쓰냐구요?
CPU의 소비 전력이란건 아이들/풀로드시가 CPU점유율 퍼센트에 따라 1차원 그래프를 그리는것도 아니고, 그렇게 이상적인 그래프를 그린다 쳐도 시작지점이 0이 아닙니다.
쉽게말해 1000으로 1초에 끝낼일을 100으로 10초에 하면 1000에서는 1초 * 500 전력....같은식으로 500을 쓰고 100에서는 10초 * 100 전력...같은식으로 1000을 써서 100으로 맞췄을때 오히려 더 전력 소비가 많아질수도 있다는겁니다...
근데 그에 비해 아무것도 안할때는 어짜피 시간이 걸리는것도 아닌데 굳이 대기전력도 좀 더 높은 1000을 쓸 필요도 없구요...
근데 이걸 그때그때 수동으로 조절하려면 힘들겠죠? 그래서 있는게 conservative입니다.(ondemand도... 이 두개의 차이는 저도 정확히는 모릅니다.) CPU의 부하에 따라 적절한 클럭으로 조정하지요. 게다가 이건 기본옵션입니다(....)
그러니까 다들 SetCPU에서 힘들게 Profiles쪽 만지실거 아니면 그냥 conservative로 쓰시는게 편하실겁니다.
물론 Profiles쪽 만지실때도 "배터리 풀일때는 1000/1000에 powersave"같은 별로 의미없는거 해놓고 powersave이니까 왠지 전기 덜먹는거같다!고 기분좋아하시지도 말구요..(....)
처음엔 그냥 powersave에 대해 잘못아시는부분에 대해서만 써보려했는데 쓰다보니 갑자기 이야기가 딴데로 새어버렸군요.
물론 의도적으로 풀클럭으로 놓으려고 1000/1000해놓고 powersave로 쓰시는건 별 상관 없는데, powersave이니까 1000/1000 performance보다 전력 덜먹을거라고 생각하시진 마시라는 글이었습니다.
ps. 따...딱히 곰디님 까려고 쓴글은 아닙니당! 그냥 오류가 있는 부분을 정정하는 글...
곰디님 설정으로 하면 배터리 최고로 많이다는 설정입니다.