Messages in this thread | | | From | KY Srinivasan <> | Subject | RE: [PATCH V2 02/10] Drivers: hv: utils: run polling callback always in interrupt context | Date | Sat, 12 Dec 2015 00:49:54 +0000 |
| |
> -----Original Message----- > From: Dexuan Cui > Sent: Thursday, December 10, 2015 11:33 PM > To: KY Srinivasan <kys@microsoft.com>; gregkh@linuxfoundation.org; linux- > kernel@vger.kernel.org; devel@linuxdriverproject.org; olaf@aepfle.de; > apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com > Subject: RE: [PATCH V2 02/10] Drivers: hv: utils: run polling callback always in > interrupt context > > > -----Original Message----- > > From: KY Srinivasan > > Sent: Friday, December 11, 2015 7:23 > > > It looks the patch has not been Greg's tree yet. > > > > > > I have 2 questions about the patch: > > > > > > 1. hv_poll_channel() is invoked in fcopy_handle_handshake(), but not in > > > vss_handle_handshake() and kvp_handle_handshake(). > > > Why -- I guess we missed the vss/kvp cases somehow? > > I will fix this. > > Thanks, KY! > BTW, I fixed another small issue by https://lkml.org/lkml/2015/12/10/50 > (The mail is attached for your convenience)
I will pick this up.
> > > > 2. With the patch, hv_fcopy_onchannelcallback() can be invoked in the > > > tasklet (i.e., vmbus_on_event(). NB: local irq is enabled), and in the > > > hard irq handler(the IPI handler, e.g., > > > fcopy_poll_wrapper() -> fcopy_poll_wrapper()). > > > > > > Can the former be interrupted by the latter? > > > e.g., when the callback is running in the tasklet on vCPU0, > > > fcopy_timeout_func() or fcopy_on_msg() could send the IPI to > > > vCPU0 from another vCPU. > > > > Keep in mind that when the poll function is run, the state will not be > > HVUTIL_READY. The state will be set to HVUTIL_READY in the IPI > > handler. So, it is ok if the tasklet is interrupted by the IPI handler. > > > > K. Y > > Got it. > > BTW, in fcopy_handle_handshake(), IMO the line > fcopy_transaction.state = HVUTIL_READY; > just before > hv_poll_channel(fcopy_transaction.recv_channel, fcopy_poll_wrapper); > should be removed? Because in fcopy_poll_wrapper() we always have > the same line. > > Ditto for kvp/vss. > > Thanks,
I will fix this and resend.
Thanks,
K. Y > -- Dexuan
| |