Abstract
In this paper, we propose an effective memory test environment, called a virtualized kernel, for 64bit multi-core computing environments. The term of effectiveness means that we can test all of the physical memory space, even the memory space occupied by the kernel itself, without rebooting. To obtain this capability, our virtualized kernel provides four mechanisms. The first is direct accessing to physical memory both in kernel and user mode, which allows applying various test patterns to any place of physical memory. The second is making kernel virtualized so that we can run two or more kernel image at the different location of physical memory. The third is isolating memory space used by different instances of virtualized kernel. The final is kernel hibernation, which enables the context switch between kernels. We have implemented the proposed virtualized kernel by modifying the latest Linux kernel 2.6.18 running on Intel Xeon system that has two 64bit dual-core CPUs with hyper-threading technology and 2GB main memory. Experimental results have shown that the two instances of virtualized kernel run at the different location of physical memory and the kernel hibernation works well as we have designed. As the results, the every place of physical memory can be tested without rebooting.
본 논문에서는 64비트 다중-코어 컴퓨팅 환경에서 효과적인 메모리 테스트를 위한 가상화 커널을 제안한다. 이때 효과적이라는 용어는 커널이 존재하는 메모리 공간을 포함한 모든 물리 메모리 공간에 대한 테스트를 시스템 리부팅 없이 수행할 수 있음을 의미한다. 이를 위해 가상화 커널은 4가지 기법을 제공한다. 첫째, 커널과 응용이 물리 메모리를 직접 접근 할 수 있게 하여 원하는 메모리 위치에 다양한 메모리 테스트 패턴을 쓰고 읽는 것이 가능하게 한다. 둘째, 두 개 이상의 커널 이미지가 다른 메모리 위치에서 수행 가능하도록 한다. 셋째, 커널이 사용하는 메모리 공간을 다른 커널로부터 격리한다. 넷째, 커널 하이버네이션을 이용하여 커널 간에 문맥 교환을 제공한다. 제안된 가상화 커널은 인텔사의 Xeon 시스템 상에서 리눅스 커널 2.6.18을 수정하여 구현되었다. 실험에 사용된 Xeon 시스템은 2개의 Dual-core CPU와 2GB 메모리를 탑재하고 있다. 실험 결과 설계된 가상화 커널이 메모리 테스트에 효과적으로 사용될 수 있음을 검증할 수 있었다.