뭔가를 놓쳤을 지 모르지만 나는이 좋은 거래를 찾았고, http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html과이 http://www.amazon.com/Essential-Device-Drivers-Sreekrishnan-Venkateswaran/dp/0132396556을 읽는 중입니다. 그러나 읽는 데 문제가 있습니다. 리눅스
32 비트 x86 플랫폼에서 vmalloc()이 ZONE_NORMAL 또는 ZONE_HIGHMEM에서 메모리를 할당 할 수있는 경우, ZONE_HIGHMEM을 확대하더라도 vmalloc()이 사용할 수있는 실제 총 범위는 변경되지 않는다는 의미입니까? 나는 ZONE_HIGHMEM을 확대하기위한 테스트를 수행했다. vmalloc()의 한 번 할당은 이전보다
kmalloc과 vmalloc에서 이미 많은 스레드가 실행되고 있지만 정확한 대답을 얻지 못 했으므로 여기에 넣겠습니다. 는 지금까지 내가 알고 kmalloc이 : 그것은 물리적으로뿐만 아니라 실질적으로 연속 된 메모리를 할당하는 커널 API입니다. vmalloc : 물리적으로 인접하지 않지만 가상적으로 인접한 메모리를 할당하는 커널 API입니다. 내 질문
내 실제 메모리가 4G이고 32 비트 인 Android x86을 사용 중이며 HIGHMEM4G가 사용 설정되어 있습니다. 가능한 한 vmalloc() 공간을 확대하고 싶습니다. 2G/2G VMsplit으로 변경하고 VMALLOC_RESERVED를 크게 만들면 vmalloc() 공간이 1G에 도달 할 수 있습니다. 하지만 더 큰 vmalloc()을 얻고 자한
물리적으로 연속적인 메모리 영역은 사실상 연속적인 메모리보다 더 효율적이라고합니다. Robert Love의 저서에 따르면 커널은 물리적으로 인접한 메모리를위한 페이지 테이블 항목을 설정할 필요가 없다고합니다. 그러나 모든 시나리오에서 커널이 페이지 테이블을 필요로하지 않습니까? 따라서 가상적으로 인접한 메모리의 경우 생성해야하는 페이지 테이블 항목.