본문 바로가기

뭉뭉뭉뭉

[Linux] 동적 메모리 할당자 : slab, slub, slob 출처 : http://studyfoss.egloos.com/5332580 오랜 동안 커널의 동적 메모리 할당자는 slab이었다. slab은 일반적인 환경에서 무난한 성능을 보여주었기 때문에 널리 사용되었지만 메모리 자원에 상당한 제한을 받는 임베디드 환경에서나 매우 높은 확장성이 요구되는 서버 환경에서는 용납하기 힘든 overhead를 지니고 있기 때문에 새로운 할당 알고리즘이 사용되고 있다. slob과 slub 할당자는 각각 2.6.16과 2.6.22 버전에서 추가된 것으로 단 1KiB의 메모리도 아쉬운 제한적인 임베디드 환경에서는 slob을, 많은 수의 CPU와 (메모리) 노드로 구성된 서버 환경에서는 slub을 사용할 수 있다. (2.6.23 버전 이후로는 x86에서 기본 할당자로 slab 대신 s.. 더보기
안드로이드 로그뷰어(LogViewer for android) - 자바 출처 : http://blog.naver.com/iookill/140135139931 자바로 만들었습니다. 플랫폼에 상관없이 돌아 갈겁니다. 사용법은 윈도우용과 동일합니다. 추가된 기능은 디바이스 여러게연결 되었을때 선택할 수 있게 했습니다. 1.4v : 창크기 저장1.3v : Recent file 및 File open추가1.2v : Tid 필터 추가1.1v : Level F 추가1.0v : Pid filter 추가0.9v : 폰트 타입 추가0.8v : 필터 체크 박스 추가0.7v : 커널로그 파싱/LogFilter.ini에 컬러정의(0~7)0.6v : 필터 대소문 무시0.5v : LogFilterCmd.ini 추가0.4v : add thread option, filter 저장0.3v : 디바이스 선택 .. 더보기
[Android] OOM (Out of Memory) 와 LMK (Low Memory Killer) 이야기. 출처 : http://shadowxx.egloos.com/10781292 안녕하세요. 멀티미디어팀에 이상철입니다. 오늘은 여러분들이 프로젝트를 진행하면서 한번을 들어 볼(?) OOM (Out of Memory) 와 LMK (Low Memory Killer) 에 대한 이야기를 해볼까 합니다. 오늘 이야기는 예전에 제가 보내드렸던 "[Android] Background process 줄여서 Memory 확보로 성능 개선하기." 메일과 관련이 깊은 내용입니다. 사실 이번 이야기는 제 동기가 찾아서 보내준 내용을 제가 여러분들과 공유하고자 전송해드리는 정도입니다. 간단히 정리하면, OOM 은 Linux 커널에서 예전부터 쭈~욱 있어왔던 메모리 관리 모듈이고 이게 휴대기기에 들어가는 system 에서는 안맞다고 .. 더보기
OOM killer & Android LMK 출처 : http://lucidtale.wordpress.com/?s=Android+Low+Memory+Killer OOM killer & Android LMK현재 리눅스 커널에는 OOM(Out of Memory) killer가 있다. 소스 파일 위치는 mm/oom_kill.c 이며메모리가 부족해서 할당에 실패할 경우alloc_pages -> … -> out_of_memory() -> select_bad_process() -> badness() 가 불리게 된다.bad process의 선정은 다음과 같다./* * The baseline for the badness score is the proportion of RAM that each * task’s rss, pagetable and swap space .. 더보기
Dalvik Optimization and Verification중에서 (dexopt) 출처 : http://anzero.blog.me/89651858 안드로이드 소스를 빌드해서 생성하면 dalvik문서가 생성되는데,Android site에서는 공개되지 않은 것 같다.dalvik vm 목적, 구현 mechanism, prepared dex등으로 구성되는데,관심사순으로 재구성하여 발췌하였다. There are at least three different ways to create a "prepared" DEX file, sometimes known as "ODEX" (for Optimized DEX):The VM does it "just in time". The output goes into a special dalvik-cache directory. This works on the desk.. 더보기
[Android] stop_drawing_early_suspend: timeout waiting for userspace to stop drawing 출처 : http://iamyooon.tistory.com/86안드로이드 디바이스를 사용하는 도중터치는 동작하지만 화면이 refresh되지 않는 문제를 경험한 적이있다.디버그메시지를 살펴보니 stop_drawing_early_suspend: timeout waiting for userspace to stop drawing라고 warning메시지를 띄우는것을 볼 수있었다.kernel/kernel/power/fbearlysusepnd.c에는 early suspend 진입시에 호출되는 stop_drawing_early_susepnd()가 있다.이 함수에서는 fb_state변수를 FB_STATE_REQUEST_STOP_DRAWING으로 설정한 다음 HZ시간 동안 해당 변수가 FB_STATE_STOP_DRAWIN.. 더보기
recovery 디버그 메세지를 커널 메세지로 보고 싶을때 기본적으로 리커버리 종료시 "/cache/recovery/log" 에 저장된다.만약 recovery 디버그 메세지를 커널 메세지로 실시간으로 보고 싶을때 하기처럼 바꿔주면 된다.static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log"; 를static const char *TEMPORARY_LOG_FILE = "/dev/kmsg"; 로 Tip) user 영역에서 커널 메세지를 찍고 싶을땐 /dev/kmsg에 써주면 된다. 더보기
MTP 설치 실패시 Error Code 19 안드로이드 MTP 설치 실패시 장치관리자에서 설치실패한 MTP 장치에서 우측 버튼 눌러서 제거한 후 레지스트리에서 하기 Upperfilters키값 자체를 삭제 한후 다시 꼽아서 설치 하도록 하면 된다. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{EEC5AD98-8080-425F-922A-DABF3DE3F69A}“Upperfilters” = klfltdrv 자동실행 옵션 사용안함(or 기본값설정)으로 하면 된다는 사람도 있다. 더보기