On Mon, Aug 01, 2011 at 09:22:58AM -0500, Anthony Liguori wrote: > The char layer has been growing some nasty warts for some time now as we ask > it > to do things it was never intended on doing. It's been long over due for an > overhaul and its become evident to me that we need to address this first > before > adding any more features to the char layer. > > This series is the start at sanitizing the char layer. It effectively turns > the char layer into an internal pipe. It supports flow control using an > intermediate ring queue for each direction. > > This series is an RFC because I don't think we should merge the series until > we > completely convert the old style flow control users to the new style. > > One particularly nasty area is the mux device. I'm not entirely sure yet how > to preceed there. > >
So, adding a copy - is that really a good idea? I don't have any alternative code, so I'm already starting bad, I know, and I understand the want to have a "middle ground" to ease the logic. Maybe keeping an iovec? add a function on each side for freeing, i.e. release_be_buffer, release_fe_buffer. At least it could make this as fast as the current code. I'm thinking of copy/paste for vdagent, usbredir, guest agent doing dmesg or anything larger.