On Wed, Oct 17, 2018 at 01:23:26AM +0000, Dexuan Cui wrote: > > The host may send multiple negotiation packets > (due to timeout) before the KVP user-mode daemon > is connected. KVP user-mode daemon is connected. > We need to defer processing those packets > until the daemon is negotiated and connected. > It's okay for guest to respond > to all negotiation packets. > > In addition, the host may send multiple staged > KVP requests as soon as negotiation is done. > We need to properly process those packets using one > tasklet for exclusive access to ring buffer. > > This patch is based on the work of > Nick Meier <Nick.Meier@xxxxxxxxxxxxx>. > > Signed-off-by: Long Li <longli@xxxxxxxxxxxxx> > Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > The above is the original changelog of > a3ade8cc474d ("HV: properly delay KVP packets when negotiation is in progress" > > Here I re-worked the original patch because the mainline version > can't work for the linux-4.4.y branch, on which channel->callback_event > doesn't exist yet. In the mainline, channel->callback_event was added by: > 631e63a9f346 ("vmbus: change to per channel tasklet"). Here we don't want > to backport it to v4.4, as it requires extra supporting changes and fixes, > which are unnecessary as to the KVP bug we're trying to resolve. > > NOTE: before this patch is used, we should cherry-pick the other related > 3 patches from the mainline first: > > The background of this backport request is that: recently Wang Jian reported > some KVP issues: https://github.com/LIS/lis-next/issues/593: > e.g. the /var/lib/hyperv/.kvp_pool_* files can not be updated, and sometimes > if the hv_kvp_daemon doesn't timely start, the host may not be able to query > the VM's IP address via KVP. > > Reported-by: Wang Jian <jianjian.wang1@xxxxxxxxx> > Tested-by: Wang Jian <jianjian.wang1@xxxxxxxxx> > Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx> This should also be added to 4.9.y, right? thanks, greg k-h