A Virtualized Kernel for Effective Memory Test

효과적인 메모리 테스트를 위한 가상화 저널

  • 박희권 (단국대학교 컴퓨터과학과) ;
  • 윤대석 (단국대학교 컴퓨터과학과) ;
  • 최종무 (단국대학교 컴퓨터과학과)
  • Published : 2007.12.15

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 메모리를 탑재하고 있다. 실험 결과 설계된 가상화 커널이 메모리 테스트에 효과적으로 사용될 수 있음을 검증할 수 있었다.

Keywords

References

  1. M.S. Abadir & H.K. Reghbati, 'Functional testing of semiconductor random access memories,' Computing Surveys, Volume 15, Number 3, pp. 175-198, 1983 https://doi.org/10.1145/356914.356916
  2. Amandeep Singh, Debashish Bose, 'A Software Based Online Memory Test For Highly Available Systems,' IEEE IOLTS'05, pp. 199-200, 2005
  3. 한선경, 유영갑, 'Memory test의 問題와 展望,' 전자 공학회지, 제24권, 제6호, pp. 688-697, 1997
  4. memtest86, http://www.memtest86.com
  5. Linux kernel archive, http://kernel.org
  6. Robert Love, Linux Kernel Development, 2nd Ed., Novell Press, Indianpolis, 2005
  7. Daniel P.Bovet, Marco Cesati, Understanding the Linux kernel, 3rd Ed., O'REILLY, Sebastopol, 2005
  8. Intel, Extended Memory 64 Technology Software Developer's Guide, 2004
  9. AMD, AMD64 Architecture Programmer's Manual Vol.1-Vol.5, 2003
  10. memtester, http://pyropus.ca/software/memtester
  11. Xen, www.xensource.com/
  12. VMware, www.vmware.com
  13. Vmware 'Streamlining Software Testing with the IBM Rational and VMware,' VMware white paper, 2003
  14. Joshua LeVasseur, Volkmar Uhlig, Matthew Chapman, Peter Chubb, Ben Leslie, Gernot Heiser, 'Previrtualization : Slashing the Cost of virtualization,' Technical Report, National ICT Australia, 2005
  15. Mendel Rosenblem, Tal Garfinkel, 'Virtual Machine Moniters: Current Technology and Future Trends,' IEEE Computer Society, Volume 38, Number 5, pp. 39-47, 2005
  16. Paul Barhan, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Lan Pratt, Andrew Warfield, 'Xen and the Art of Virtualization,' SOSP'03, pp. 164-177, 2003