From: Marc E. F. <mef@CS.Princeton.EDU> - 2006-04-10 21:53:26
|
Hello Henry, > coLinux runs on a single machine and have only up to 90% of CPU time. > Standard benchmarks runs not long enough to check the real speed. The > clock inside coLinux is synched with windows clock. The bad thing for > your test is, that coLinux ask the host for accurate time, every you > call gettimeofday(). Yes, it goes from Linux into host OS and back, to > give you the time. In this case you lose some milliseconds. How does it go into the host for gettimeofday() calls? Is the communication asynchronous (i.e., using a separate thread running in Windows to provide the answer), or is it primarily reading a shared page with the data synchronously that is updated every now and then by the Windows OS? > That's why you can only compair some long working stuff, for sample > kernel builds and copy disk with dd. Good feedback. > Remember that, if you use a real partion for cobd > (\Device\HarddiskX\PartitionY), then coLinux currently does a sync disk > access (waits for IO ready). That is 5x or more slower as a root > filesystem in a file. For our usage scenarios it doesn't make sense to use a real partition. We are using a file backed filesystem. > CoLinux 0.6.x and 0.7.x runs on different kernels. If you compair it > agains native Linux, you should run the same kernel version. I think > kernel 2.6.12 has some internal latency overheads. Linux kernel > devolopers made some experiments on limit per process time. That can be > slower for some task switch. But I'm not known more about this. Yes, we need to compare to 2.6.12 vs. 2.6.9. However, given the aforementioned timing problems with gettimeofday(), I don't think that is our primary problem. > For your networking speed: CoLinux has no special load balancing between > Linux and Windows, all bytes goes through a pipe of 4096 bytes passage > page. If that pipe is still overloaded (with your clock-request) then > it has no more time for byte transfer. Every block that should transfer > from or to coLinux will wakeup a sleeping colinux-daemon on that pipe. > That is the condition, why somebody incrase the process priority for > networking daemons to speed up networking. Is there a way to dynamically change this priority from within coLinux? > CoLinux is optimiszed for speed to running on the Linux side without > blocking the host system. With some changes, speed would incrase for > transfers (network, block devices, console). The current design use a > pipe concept for communication to the host. In this case the single CPU > must run on both end of the pipe in same time. Interesting. Marc |