Portál AbcLinuxu, 20. dubna 2024 05:32


Dotaz: vmplayer a interne hodiny

13.11.2006 09:59 Michal Hocko | skóre: 7
vmplayer a interne hodiny
Přečteno: 437×
Odpovědět | Admin
Zdravim.

Vytvoril som si GUEST system pre vmplayer a narazil som na to, ze po nabootovani guest systemu, jeho interne hodinky "tikaju" extremne pomaly (povedzme tak 10x pomalsie). Ovplyvnene su len volania, ktore nejakym sposobom hodiny pouzivaju (sleep atp.), ale ostatne aplikacie maju rychlost normalnu (ping typicky posle a prijme paket hned a potom dlho caka na odoslanie dalsieho paketu). Podivne je to, ze potom ako som nastavenie spolu s obrazom systemu prekopiroval na iny hostovaci pocitac (s rovnakou verziou vmplayer a jeho rovnakym nastavenim) tento problem nenastal a casovanie funguje spravne.

Na problematickom host systeme sa casovanie pravdepodobne pokazi pri boote guest systemu, pretoze ak sa dostanem do "virtual" BIOSu, tak cas "tika" spravne.

Obidva host systemy su Debian Sarge s dist. kernelom 2.6.17-2 (Jeden je normalny PC - ten kde to bezi spravne; druhy je Fujitsu Siemens E8020D). Guest system je identicky (rovnaky obraz prekopirovnay z NB na PC) na obidvoch pocitacoch. Pouziva 2.6.8 dist. kernel (tiez Debian Sarge), iny kernel som zatial neskusal.

$ vmplayer -v
VMware Player 1.0.2 build-29634

$ cat vm.vmx
#!/usr/bin/vmplayer

config.version = "8"
virtualHW.version = "3"
guestOS = "other26xlinux"
memsize = "320"
MemAllowAutoScaleDown = "FALSE"
MemTrimRate = "-1"
uuid.action = "create"
hints.hideAll = "TRUE"
tools.syncTime = "TRUE"
usb.present = "TRUE"
usb.generic.autoconnect = "FALSE"
sound.present = "TRUE"
sound.virtualdev = "es1371"
isolation.tools.hgfs.disable = "FALSE"
isolation.tools.dnd.disable = "TRUE"
isolation.tools.copy.enable = "TRUE"
isolation.tools.paste.enabled = "TRUE"
ethernet0.present = "TRUE"
ethernet0.virtualDev = "vlance"
ethernet0.connectionType = "nat"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0c:29:b2:e0:d9"
ethernet0.generatedAddressOffset = "0"
floppy0.present = "FALSE"
floppy0.startConnected = "FALSE"
floppy0.autodetect = "FALSE"
ide1:0.present = "TRUE"
ide1:0.deviceType = "cdrom-raw"
ide1:0.startConnected = "TRUE"
ide1:0.fileName = "auto detect"
displayName = "DEBIAN"
ide1:0.autodetect = "TRUE"
ide0:0.present = "TRUE"
ide0:0.fileName = "hd.vmdk"
ide0:0.mode = "persistent"
ide0:0.startConnected = "TRUE"
ide0:0.writeThrough = "TRUE"
ide0:0.redo = ""
uuid.location = "56 4d 08 2c 6c 67 f4 3b-67 20 b8 f0 40 b2 e0 d9"
uuid.bios = "56 4d 08 2c 6c 67 f4 3b-67 20 b8 f0 40 b2 e0 d9"

tools.remindInstall = "TRUE"
usb.autoConnect.device0 = "path:4/0 autoclean:1"
Nemate niekto napad v com by mohol byt zadrhel? Dakujem za kazdu radu
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.11.2006 10:05 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na problematickom host systeme sa casovanie pravdepodobne pokazi pri boote guest systemu, pretoze ak sa dostanem do "virtual" BIOSu, tak cas "tika" spravne.

Setup vám ukazuje hardwarové hodiny na desce, ne systémový čas jádra.

13.11.2006 10:14 Michal Hocko | skóre: 7
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
To je myslim jasne, kedze v case kedy bezi setup (virtual BIOS) tak kernel este nebezi. To len podporuje hypotezu, ze je problem niekedy pocas bootu kernelu.
13.11.2006 10:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
To nepodporuje vůbec nic, protože hardwarové hodiny nemají na rychlost běhu systémového času naprosto žádný vliv. Spíš je problém ve zpracování přerušení časovače, když budete chvíli hledat na webu, najdete spoustu diskusí o podobných problémech ve VMware.
13.11.2006 12:05 koloom | skóre: 14
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Odpovědět | | Sbalit | Link | Blokovat | Admin
nemas nahodou zapnutej nejakej "cpu frequency scaling"? treba na notebooku s centrinem musim vykourit cpu naplno:

echo 1 > /sys/module/processor/parameters/max_cstate cpufreq-set -g performance

potiz je totiz v tom, ze vmware emulace pouziva pouziva casovac, kterej se zpomaluje pri snizeni vykonu cpu.
13.11.2006 12:54 Michal Hocko | skóre: 7
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
To by mohlo byt ono. Na PC som totiz scaling vypol, pretoze bol skor na obtiaz a na notebooku ho mam zapnuty stale.

Teraz to nemam ako vyskusat, ale myslim, ze to bude presne ono.

Dakujem za tip.

13.11.2006 20:00 Michal Hocko | skóre: 7
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Takze som vyskusal vypnut skalovanie CPU, ale nepomohlo...

Jedna sekunda (merane pomocou programu date) trva zhruba 7s.

Nejake dalsie napady?

16.11.2006 00:12 it-neuro
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Jam mam Pentium M centrino a mam ten isty problem. Cize ak v linuxe (skusal som 5 distrib.) spustim vmware tak cas vo vmware ide strasne, 1sek = 10 sek.

Zmena frekvencie nemomoze skusal som aj archlinux kde som mal len zaklad a to iste.

Jedie co pomaha je spustit pod linuxom nieco co zozerie cpu na 100% napr. dazd v XGL a potom aj cas pod vmware ide spravne...
16.11.2006 09:17 Michal Hocko | skóre: 7
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Tiez mam na NB Intel Centrino M, na PC je Celeron.

P.S.

Vo Win funguju hodinky pri pouziti vmplayer s rovnakym guest systemom spravne.

16.11.2006 09:28 it-neuro
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Zlaty Windows :) ..
16.11.2006 00:32 it-neuro
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Sranda ze pod Windows Vmware bezi bez problemov..

Trochu som googlil a vyzera to na ze to sposobuje kernel 2.6 na 2.4 by to malo fungovat..

Tu su nejake linky ak mi nieco uniklo..

link1

link2

link3

link4

link5
16.11.2006 10:54 koloom | skóre: 14
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
musis taky nastavit C-state:

echo 1 > /sys/module/processor/parameters/max_cstate
19.11.2006 23:25 it-neuro
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
To echo 1 > /sys/module/processor/parameters/max_cstate pomohlo akurad ze ked sa procak podtaktujem na 800 MHz tak 1s = 0.5 s vo vmware, cize pod vmware ide cas raz tak pomalsie. Ked zdvihnem CPU na 1.7 (max) tak je cas takmer skutocny.

To vsak CPU zerie viac baterku a kuri..
20.11.2006 09:27 MarSik | skóre: 16 | Brno
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak uz tu nekdo rekl, jedna se o problem zpracovani preruseni casovace. V jadre 2.6 ma frekvenci 250Hz (nebo 1000Hz, nepamatuju se co je ted default) a ten system ve vmware ma samozrejme stejnou. Problem je v tom, ze nedostane k dispozici vsechny tiky (resp cas k jejich zpracovani) z hostitelskeho systemu, protoze se deli o cas s ostatnimi procesy.

Resenim je bud pouzit 2.4 jadro (100Hz interni frekvence) nebo prelozit 2.6 jadro s nizsi frekvenci nez ma hostitel (treba zrovna tech 100Hz). A pokud je defaultni frekvence 2.6 jadra 250Hz, tak bych doporucil zmenu i tam (na 1000Hz).
Nothing is foolproof...fools are very clever.
20.11.2006 09:30 MarSik | skóre: 16 | Brno
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Hmm zapomnel jsem napsat ze ta zmena na 100Hz plati pro system ve vmware a ta zmena na 1000Hz pro hostitelsky system..
Nothing is foolproof...fools are very clever.
25.11.2006 23:12 it-neuro
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Mam Pentium M 1,7GHz Nakompiloval som si vlastne jadro v Ubuntu 6.10 Zobral som povodny config a upravil vnom len typ procesora na pentium M a frekvenciu zmenil z 250 na 1000 Hz. no teraz mi to robi naopak.

Ak bezi procesor na 800MHz tak ide cas OK a ked ide na 1700MHz tak ide cas 2 az 3 krat rychlejsie..

A pod vmware mi bezi w2000 a Wxp, v oboch robi ten cas to iste.

Mate nejaky dalsi napad?
20.11.2006 09:33 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
U prvních verzí řady 2.6 byl (na i386 i x86_64) default 1000 Hz, u současných je to 250 Hz.
20.11.2006 09:51 Michal Hocko | skóre: 7
Rozbalit Rozbalit vše Re: vmplayer a interne hodiny
Ak je problem iba vo frekvencii casovaca jadra, potom nerozumiem tomu, preco vo vmplayer na PC (ako bolo spomenute na zaciatku) s jadrom 2.6.17 (teda rovnakym ako na NB) funguje cas spravne!

Ako uz niekto navrhoval, skusal som vypnut skalovanie (sice iba tak, ze som nastavil governonra na performance, ktory nastavi frekvenciu na maximum a myslim, ze uz nic dalej neskaluje) ale nepomohlo... Taktiez som skusal max_cstate, co tiez mohlo byt problemom. Uz teda neviem, v com by z hladiska systemu mohlo byt ine. Napada ma jedine problem s HW (nejake featura procesora, ale je to skor vystrel do prazdna).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.