2016-10-04 7 views
4

저는 SPDK 실험 (DPDK를 사용하고 거대한 페이지를 사용함)을 실행 중이며 어제 작동했습니다. 나는 그것을 공유 환경에서 운영하고있다. (나는 한두 명 더 많은 사람들이이 기계를 다른 것들에 사용한다고 생각한다). 자, 내가 그것을 실행하려고 할 때마다, 나는 무료 freepages 에러를 얻지 못한다./proc 디렉토리/meminfo 파일의Hugepages는 존재하지만 무료 또는 예약되지 않습니다. 또는 거대한 페이지를 해제하려면 어떻게합니까?

출력은 다음과 같습니다 마운트의

HugePages_Total: 1024 
HugePages_Free:  0 
HugePages_Rsvd:  0 
HugePages_Surp:  0 
Hugepagesize:  2048 kB 

출력 : 더 이상 작동하지 않습니다 내 마지막 환경에 근무

cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb,release_agent=/run/cgmanager/agents/cgm-release-agent.hugetlb) 

뭔가 :

umount -a -t hugetlbfs 
mount -t hugetlbfs nodev /mnt/huge 

그런 다음/proc/meminfo의 출력은

입니다.
HugePages_Total: 1024 
HugePages_Free:  0 
HugePages_Rsvd:  0 
HugePages_Surp:  1024 

하지만 시도하는 경우에 그것을 실행 :

EAL: No free hugepages reported in hugepages-1048576kB 
EAL: No free hugepages reported in hugepages-2048kB 
PANIC in rte_eal_init(): 
Cannot get hugepage information 

왜이 페이지는 무료 흑자 및 않나요? 내가 그들을 풀 수있는 방법이 있습니까? 다른 작업이 실행 중이거나 사용중인 사람들이있을 수 있기 때문에 시스템을 다시 시작하고 싶습니다.

편집 : 기계를 다시 시작하고 더 많은 huge 페이지를 할당했으며 무료였습니다. 테스트를 실행하면 추락했으며 이제 거대한 페이지가 다시 손실됩니다. (적어도 나를 위해) 어떤 작업 응답과

관련 질문 : 당신이 지시 아래 수행하면

How to release hugepages from the crashed application

How to really free hugepages in Linux for use by a new process?

답변

3

, 당신은 할당에서는 hugepages를 제거 할 수 있습니다

1) 재시작시 자유였던 거대한 페이지를 확인합시다.

[email protected]:~$ ls /mnt/huge/ 
empty 

[email protected]:~/dpdk-1.8.0/examples/kni$ cat /proc/meminfo 
... 
HugePages_Total:  256 
HugePages_Free:  256 
... 
오류

[email protected]:~/dpdk-1.8.0/examples/kni$ sudo ./build/kni -c 0x03 -n 2 -- -P -p 0x03 --config="(0,0,1),(1,0,1)" 
... 
EAL: Error - exiting with code: 1 
    Cause: No supported Ethernet device found 

3) 나는에서는 hugepages를 검사 할 때, 어떤 자유

[email protected]:~/dpdk-1.8.0/examples/kni$ cat /proc/meminfo 
... 
HugePages_Total:  256 
HugePages_Free:  0 
... 

4) 지금, 나는이 확인 될 때이없는 생산 잘못된 매개 변수로 dpdk 응용 프로그램을 시작

2) 마운트 된 hugepage 디렉토리에, 나는 dpdk 응용 프로그램에 의해 운영 체제에 다시 제공되지 않는 파일을 볼 수 있습니다. 당신이 rtemap로 시작하는 파일을 제거하면

[email protected]:~/dpdk-1.8.0/examples/kni$ ls /mnt/huge/ 
... 
rtemap_0 rtemap_137 rtemap_176 rtemap_214 rtemap_253 rtemap_62 
... 

5) 마지막으로, 나는 더 이상이 문제를받지 못했습니다 이유를 모르는

[email protected]:~/dpdk-1.8.0/examples/kni$ sudo rm /mnt/huge/* 
[sudo] password for dpdk: 
[email protected]:~/dpdk-1.8.0/examples/kni$ cat /proc/meminfo 
... 
HugePages_Total:  256 
HugePages_Free:  256 
... 
+1

다시에서는 hugepages 제공 할 수 있습니다,하지만 난 기억 hugepages에 대한 마운트 지점이 비어 있고 파일이 없습니다. 재발하면 다시 시도해 볼게요, 고마워요! – hfingler

+1

사실, 마운트 된 디렉토리가 비어 있지만 아직 무료 거대한 페이지가없는 경우가 있습니다. 마운트를 다시하고 마운트를 몇 번했는데, 이제는 더 이상 필요하지 않으며 이유가 없습니다. – hfingler

+0

또한 빈 마운트로이 문제가 발생합니다. 나는 그것이 비 mmap huge 페이지 할당과 관련이 있다고 생각한다. –