On Tue, Aug 22, 2017 at 8:41 AM, Alin Balutoiu <[email protected]> wrote: > Comments answered inline. > > Thanks, > Alin Balutoiu. > >> -----Original Message----- >> From: Russell Bryant [mailto:[email protected]] >> Sent: Tuesday, August 22, 2017 2:35 PM >> To: Alin Balutoiu <[email protected]> >> Cc: [email protected] >> Subject: Re: [ovs-dev] [PATCH] windows, python: set the reset event to >> automatic >> >> On Tue, Aug 22, 2017 at 6:47 AM, Alin Balutoiu >> <[email protected]> wrote: >> > The overlapped structures used for read and write operations get an >> > event with manual reset flag set on True. >> > >> > At the moment events are waiting to be reset with their state being >> > always signaled. >> >> Just making sure I understand ... once an event was raised for a fd, it was >> never reset? What was the side effect? Did it turn the event loop into a >> busy loop? > [Alin Balutoiu] The side effect was observed in the OpenStack case when > using the native interface driver. Since the event was never reset, the > call to poller.block() always was returning the same event, even though > there was no read operation to be done. This resulted in having an infinite > loop consuming a lot of CPU.
Thanks, that's what I thought, just making sure I understood properly. Acked-by: Russell Bryant <[email protected]> >> >> > This commit sets from manual reset to automatic reset for the events >> > on the overlapped read/write structures. >> > >> > Signed-off-by: Alin Balutoiu <[email protected]> >> > --- >> > python/ovs/stream.py | 6 ++++-- >> > 1 file changed, 4 insertions(+), 2 deletions(-) >> > >> > diff --git a/python/ovs/stream.py b/python/ovs/stream.py index >> > f82a449..b30c4aa 100644 >> > --- a/python/ovs/stream.py >> > +++ b/python/ovs/stream.py >> > @@ -103,9 +103,11 @@ class Stream(object): >> > self.pipe = pipe >> > if sys.platform == 'win32': >> > self._read = pywintypes.OVERLAPPED() >> > - self._read.hEvent = winutils.get_new_event() >> > + self._read.hEvent = winutils.get_new_event(bManualReset=False, >> > + >> > + bInitialState=False) >> > self._write = pywintypes.OVERLAPPED() >> > - self._write.hEvent = winutils.get_new_event() >> > + self._write.hEvent = >> > winutils.get_new_event(bManualReset=False, >> > + >> > + bInitialState=False) >> > if pipe is not None: >> > # Flag to check if fd is a server HANDLE. In the case of >> > a >> > # server handle we have to issue a disconnect before >> > closing >> > -- >> > 2.10.0.windows.1 >> > _______________________________________________ >> > dev mailing list >> > [email protected] >> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> >> >> >> -- >> Russell Bryant -- Russell Bryant _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
