From: Jeff D. <jd...@ad...> - 2004-09-10 02:55:32
|
bla...@ya... said: > The IO is always synchronous. But in the better case it's performed by > a separate thread (which will wait for the IO to complete), while in > the other case it's performed by the main UML thread, which will wait > for IO completion, remaining idle meanwhile, while instead it could > do anything else (like letting another UML process run or perform > tasks which don't require those datas). In fact, I wrote a patch so > using CONFIG_BLK_DEV_UBD_SYNC will become like using ubd0s= ubd1s=... This is just broken. I have no idea how it got this way. These are two entirely different sorts of synchronous. CONFIG_BLK_DEV_UBD_SYNC originally did (O_SYNC or !O_SYNC) IO in process context rather than in the io_thread. ubd=sync or ubd*s do O_SYNC IO to the host. I can't remember why CONFIG_BLK_DEV_UBD_SYNC was added, which is always a bad sign. Maybe it was a debugging crutch. I think it should just be removed. Jeff |