저는 Marvel PXA986 보드를 작업 중인데 보드 파일을 보면 거의 사용되지 않는 것을 볼 수 있습니다 memblock_reserve
. 하지만 바로 뒤에는 전화가 걸려오는 것을 볼 memblock_reserve
수 있습니다 . 기억을 보관한 후 즉시 삭제하는 것이 무슨 의미가 있나요?memblock_free
memblock_remove
누구든지 memblock API를 설명할 수 있나요?
답변1
질문을 이해했는지 잘 모르겠지만 아마도 이것은 적어도 올바른 방향을 가리키는 지침일 것입니다. API에 관해서는 소스 코드를 읽는 것 외에는 할 일이 별로 없다고 생각합니다.
이것은 출처가 말한 내용의 산문 버전에 지나지 않습니다. 제가 확인한 버전은 3.11.7 입니다.
mm/memblock.c
1) memblock_reserve()가 특정 조건에서 memblock_double_array()를 호출하는 memblock_add_region()을 호출한 다음 특정 조건에서 다시 memblock_free()를 호출하는 경우 관련 비트가 빠르게 섞입니다. 이는 커널이 여유 공간을 찾고 배열이 가득 차는 것을 방지하기 위해 실제 메모리 영역을 가리키는 배열을 이전 배열로 이동해야 할 때 발생합니다(라인 267-278 참조 mm/memblock.c
).
요약하자면: memblock_reserve() 직후에 memblock_free() 및 memblock_remove()가 호출되는 것을 본다면 이것이 반드시 오류 조건은 아니라고 생각합니다.