Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

Pure Software Engineer :)

[Xen] PCI Passthrough 본문

Software Engineering/Linux

[Xen] PCI Passthrough

HelloJaewon 2012. 11. 15. 15:38

Xen에서는 guest domain이 PCI 디바이스를 직접 사용할수 있도록 PCI passthrough 를 지원한다.


이를 사용하기 위해 커널 컴파일할때 모듈은 선택해줘야한다.


dom0에서는 pci-backend 디바이스가 있어야 하며

domU에서는 pci-frontend 디바이스가 있어야 한다.



이제 PCI passthrough를 사용해보자


먼저 dom0에서 domU에게 건내줄 디바이스 번호를 알아야 한다.

$ lspci 를 통해 PCI 디바이스 목록을 볼수 있다.

아래는 하나의 예이다.


0b:00.0 Power PC: Device eee0:fed0 (rev 01)


passthrough하는 방법은 static, dynamic(xl, sysfs) 등 여러가지 방법이 있는데

여기서는 dynamic assignment with sysfs 를 통해 해보자.


$ echo 0000:0b:00.0 > /sys/bus/pci/devices /0000:0b:00.0/driver/unbind

$ echo 0000:0b:00.0 > /sys/bus/pci/drivers/pciback/new_slot

$ echo 0000:0b:00.0 > /sys/bus/pci/drivers/pciback/bind


위와 같이 하면 dom0 의 pci-backend 디바이스에 0b:00.0 이라는 PCI디바이스가 바인딩 된다.

(여기서 0000은 도메인을 나타내는데 dom0이므로 이것은 보통 0000 이라고 보면된다.)


passthrough 사용하기 위해 준비가 제대로 되었는지 확인하려면 다음과 같이 해본다.

$ xm pci-list-assignable-devices


제대로 준비되었다면 다음과 같이 나온다.

0000:0b:00.0


이제 남은것은 domU 의 configuration 파일에 PCI 설정을 추가하는것이다.

pci = ['0b:00.0']


그럼 끝!!!


references

http://wiki.xen.org/wiki/Xen_PCI_Passthrough