Messages in this thread | | | From | Michael Kelley <> | Subject | RE: [PATCH 05/11] hv_utils: Always execute the fcopy and vss callbacks in a tasklet | Date | Fri, 10 Apr 2020 19:26:56 +0000 |
| |
From: Andrea Parri (Microsoft) <parri.andrea@gmail.com> Sent: Sunday, April 5, 2020 5:15 PM > > The fcopy and vss callback functions could be running in a tasklet > at the same time they are called in hv_poll_channel(). Current code > serializes the invocations of these functions, and their accesses to > the channel ring buffer, by sending an IPI to the CPU that is allowed > to access the ring buffer, cf. hv_poll_channel(). This IPI mechanism > becomes infeasible if we allow changing the CPU that a channel will > interrupt. Instead modify the callback wrappers to always execute > the fcopy and vss callbacks in a tasklet, thus mirroring the solution > for the kvp callback functions adopted since commit a3ade8cc474d8 > ("HV: properly delay KVP packets when negotiation is in progress"). > This will ensure that the callback function can't run on two CPUs at > the same time. > > Suggested-by: Michael Kelley <mikelley@microsoft.com> > Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com> > --- > drivers/hv/hv_fcopy.c | 2 +- > drivers/hv/hv_snapshot.c | 2 +- > drivers/hv/hyperv_vmbus.h | 7 +------ > 3 files changed, 3 insertions(+), 8 deletions(-) >
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
| |