[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DM5PR2101MB1047D0C511D26C877D7719FAD7DE0@DM5PR2101MB1047.namprd21.prod.outlook.com>
Date: Fri, 10 Apr 2020 19:26:56 +0000
From: Michael Kelley <mikelley@...rosoft.com>
To: "Andrea Parri (Microsoft)" <parri.andrea@...il.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC: KY Srinivasan <kys@...rosoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>,
Stephen Hemminger <sthemmin@...rosoft.com>,
Wei Liu <wei.liu@...nel.org>,
"linux-hyperv@...r.kernel.org" <linux-hyperv@...r.kernel.org>,
Dexuan Cui <decui@...rosoft.com>,
Boqun Feng <boqun.feng@...il.com>,
vkuznets <vkuznets@...hat.com>
Subject: RE: [PATCH 05/11] hv_utils: Always execute the fcopy and vss
callbacks in a tasklet
From: Andrea Parri (Microsoft) <parri.andrea@...il.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@...rosoft.com>
> Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@...il.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@...rosoft.com>
Powered by blists - more mailing lists