天天看點

xen 環境

項目釋出後,處于短暫休息期,老大去北京出差,周三才回來。之後又要開始新一輪的項目規劃。本來打算這兩天寫點自己的代碼,但是吧,貌似我要做的事情,在公司不太友善,哎,想想,還是乖乖地整點公司的事情。

下午主要是把我的開發機環境clean 了下,之前編了太多版本的kernel,導緻很多版本,我自己都不知道是加了哪些patch的。現在已經同步到線上的版本了,由于有段時間沒編kernel了,指令都生疏了,特整理下來,以友善後面查詢。

編譯Xen的話,如果需要從網上下載下傳的話就按照Readme裡面說的那樣make world,make install 。但是通常情況,我們都會自己搞好源碼包,那麼直接make xen make tools make install-xen make install-tools

編譯Dom0 kernel的話,有兩種方法,一種是Readme裡面說的,make linux-2.6-pvops build / install  我之前就這樣編的,不過有些不友善,需要把你dom0 kernel的檔案夾鍊到linux-2.6-pvops.git 。還有一種就是直接編譯kernel,拷貝.config檔案,make make modules_install make install。

最後重新mkinitrd -v -f --builtin=ehci-hcd --builtin=ohci-hcd --builtin=uhci-hcd --with=aacraid --with=sd_mod initrd-2.6.31.13-wj.img 2.6.31.13-wj,并修改grub檔案。

好的,現在環境算是弄好了,把之前的kernel全删了,幹淨多了。

由于現在有個問題是,如何動态修改xen裡面的rate limit。看了netback裡面的代碼,發現,是在前後端connect的時候,netback會去讀xenbus裡面的rate值,并在後面一段時間内的tx bytes進行監控,如果超出credit,則等待這段時間過去,重新計時監控。

目前貌似有兩種想法:一種是detach vif 在attach vif,這樣前後端會重新connect,讀新rate,還有一種是讓netback watch這個xenstore path被修改的事件,調用callback,改寫記憶體中的credit值。

今天初步試驗了下,由于還要趕回家寫自己的代碼,暫時寫到這。等确定方案了,在詳細講解。

繼續閱讀