Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
  TLB Flushing 과 그에 따른 CPU의 대책??? 
작성일시 : 2011. 8. 8. 22:03 | 분류 : Windows Server/Virtualization

기존의 TLB Flushing과 성능에 대한 이슈는 알려진것과 같습니다.
“High performance graphic driver 를 이용하는 경우 성능이슈가 발생 할 수 있다” http://support.microsoft.com/kb/961661

참고) TLB는 CPU에서 빠른 메모리 접근을 하기 위하여 사용하는 Virtual Address와 Physical Address를 mapping한 Table 입니다.

하지만 Nehalem CPU의 경우 VPID(Virtual Processor ID) 를 통해 TLB Cache에 대한 Overhead를 꽤 줄인것 같습니다. (내용은 아래와 같음)
Remote FX와 TLB 성능에 대하여 아래와 같이 추론해 봅니다.

아래 내용이 정확한지는 무책임하게도 저도 모릅니다.

기존에는 “Hyper-v 를 이용하는 경우 context switching 이 발생하면 TLB 역시 Flushing 되며 이를 사용하는 경우 성능이슈가 나타난다.” 였습니다.
하지만 Nehalem 이후의 CPU의 경우 이러한 TLB에 Virtual Processor 에 대한 ID를 달수 있고, 이를 통해 Merom 대비 약 40%의 성능 향상이 있었다. 그리고 이를 사용하기 위해서는 SLAT 기능은 Enable 해야 한다???

SLAP는 GVM > GPA > SPA 로의 변환을 Hyper-V 가 담당 했었는데, 이걸 그냥 새로운 CPU에서 Cover 하고 있는 기능입니다.

Back Data
출처 : 어코딩투 재프~ (울회사 가상화팀)
For virtualizing desktops using RemoteFX, SLAT hardware is REQUIRED. The use of SLAT capable hardware offers significant performance improvements across the board and is especially important when using RemoteFX. These technologies are an extension to the traditional TLB that allow Hyper-V to use the hardware to handle multiple TLBs – one for each virtual machine. This is fundamental requirement for RemoteFX.
- Intel refers to this a Extended Page Tables (EPT).
- AMD refers to this as Nested Page Tables (NPT) or Rapid Virtualization Indexing (RVI).
If there are BIOS option to enable these features (they’re usually on by default), these options should be enabled.

출처 : http://www.realworldtech.com/page.cfm?ArticleID=RWT040208182719&p=8
Nehalem’s TLB entries have also changed subtly by introducing a “Virtual Processor ID” or VPID. Every TLB entry caches a virtual to physical address translation for a page in memory, and that translation is specific to a given process and virtual machine. Intel’s older CPUs would flush the TLBs whenever the processor switched between the virtualized guest and the host instance, to ensure that processes only accessed memory they were allowed to touch. The VPID tracks which VM a given translation entry in the TLB is associated with, so that when a VM exit and re-entry occurs, the TLBs do not have to be flushed for safety. Instead if a process tries to access a translation that it is not associated with, it will simply miss in the TLB, rather than making an illegal access to the page tables. The VPID is helpful for virtualization performance by lowering the overhead of VM transitions; Intel estimates that the latency of a round trip VM transition in Nehalem is 40% compared to Merom (i.e. the 65nm Core 2) and about a third lower than the 45nm Penryn.

|