Hello guys, Studying a bit deeper the code in OvsEvent.c, I came across several things I do not understand. Perhaps you can help me a bit :)
I can see it is used for the "queue packet for userspace". Being called "OvsEvent", I had expected that it has something to do with KEVENT, but it is not the case. Two things that I find difficult to understand are: a) the code sets a cancel IRP routine, but it nowhere calls IoCancelIrp. b) the requests to the driver (read / write) can be satisfied instantaneously, so we normally have no "pending" IRPs. I don't think it is correct to call the queuing of packets to userspace a "pending" operation. The packets in queue are pending, but not the request. In device drivers I think we get a pending operation when the data needs time to arrive, or to be written to the device, and can therefore be canceled while the operation is in progress. I don't understand how these terms apply to our case. Is the intent of calls to IoSetCancelRoutine in OvsEvent.c to provide a cleanup, should the driver be unloaded while having requests ongoing? Could you please give me some details on the architecture of OvsEvent and its use by packet queuing and km-um communication? Thanks! Samuel _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev