Hi Dave, * Dave Voutila wrote: > Looking for some broader testing of the following diff. It cleans up > some complicated logic predominantly left over from the early days of > vmd prior to its having a dedicated device thread. > > In summary, this diff: > > - Removes vionet "rx pending" state handling and removes the code path > for the vcpu thread to possibly take control of the virtio net device > and attempt a read of the underlying tap(4). (virtio.{c,h}, vm.c) > > - Removes ns8250 "rcv pending" state handling and removes the code path > for the vcpu thread to read the pty via com_rcv(). (ns8250.{c,h}) > > In both of the above cases, the event handling thread will be notified > of readable data and deal with it. > > Why remove them? The logic is overly complicated and hard to reason > about for zero gain. (This diff results in no intended functional > change.) Plus, some of the above logic I helped add to deal with the > race conditions and state corruption over a year ago. The logic was > needed once upon a time, but shouldn't be needed at present. > > I've had positive testing feedback from abieber@ so far with at least > the ns8250/uart diff, but want to cast a broader net here with both > before either part is committed. I debated splitting these up, but > they're thematically related.
I have the diff running since one week on -current with stable/current and an Archlinux guest and have noticed no regression so far. Cheers Matthias