> I really dislike the idea of adding another function for this. Can you > explain why you need this functionality for virtio-console and why this > functionality isn't needed for everything else?
This functionality should (in principle) be used by all serial port implementations. Physical serial ports are sufficiently crufty and low-performance that noone actually uses them nowadays. I expect that the only significant real-world use is for serial consoles, which never send enough data to care that writes stall the whole machine. With virtio-serial we've made serial ports a viable solution to a whole range of problems. It's likely that applications that may send nontrivial amounts of data, or clients will not be ready to process the data immediately. Paul