Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1602817

Re: [PATCH] HV: properly delay KVP packets when negotiation is in progress

From "Joshua R. Poulson" <jrp@pun.org>
Newsgroups linux.kernel
Subject Re: [PATCH] HV: properly delay KVP packets when negotiation is in progress
Date 2017-03-16 21:10 +0100
Message-ID <tlJSG-3pV-23@gated-at.bofh.it> (permalink)
References <tlJJ0-379-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


This should be submitted to stable, we're seeing KVP fail to start in
some tests of 4.10.

On Thu, Mar 16, 2017 at 12:51 PM, Long Li <longli@microsoft.com> wrote:
> The host may send multiple KVP packets before the negotiation with daemon
> is finished. We need to keep those packets in ring buffer until the daemon
> is negotiated and connected.
>
> This patch is based on the work of Nick Meier <Nick.Meier@microsoft.com>
>
> Signed-off-by: Long Li <longli@microsoft.com>
> ---
>  drivers/hv/hv_kvp.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/hv/hv_kvp.c b/drivers/hv/hv_kvp.c
> index de26371..b9f928d 100644
> --- a/drivers/hv/hv_kvp.c
> +++ b/drivers/hv/hv_kvp.c
> @@ -628,16 +628,17 @@ void hv_kvp_onchannelcallback(void *context)
>                      NEGO_IN_PROGRESS,
>                      NEGO_FINISHED} host_negotiatied = NEGO_NOT_STARTED;
>
> -       if (host_negotiatied == NEGO_NOT_STARTED &&
> -           kvp_transaction.state < HVUTIL_READY) {
> +       if (kvp_transaction.state < HVUTIL_READY) {
>                 /*
>                  * If userspace daemon is not connected and host is asking
>                  * us to negotiate we need to delay to not lose messages.
>                  * This is important for Failover IP setting.
>                  */
> -               host_negotiatied = NEGO_IN_PROGRESS;
> -               schedule_delayed_work(&kvp_host_handshake_work,
> +               if (host_negotiatied == NEGO_NOT_STARTED) {
> +                       host_negotiatied = NEGO_IN_PROGRESS;
> +                       schedule_delayed_work(&kvp_host_handshake_work,
>                                       HV_UTIL_NEGO_TIMEOUT * HZ);
> +               }
>                 return;
>         }
>         if (kvp_transaction.state > HVUTIL_READY)
> --
> 2.7.4

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] HV: properly delay KVP packets when negotiation is in  progress Long Li <longli@microsoft.com> - 2017-03-16 21:00 +0100
  Re: [PATCH] HV: properly delay KVP packets when negotiation is in progress "Joshua R. Poulson" <jrp@pun.org> - 2017-03-16 21:10 +0100
  Re: [PATCH] HV: properly delay KVP packets when negotiation is in progress Vitaly Kuznetsov <vkuznets@redhat.com> - 2017-03-17 17:20 +0100
    RE: [PATCH] HV: properly delay KVP packets when negotiation is in  progress Long Li <longli@microsoft.com> - 2017-03-20 03:50 +0100
      RE: [PATCH] HV: properly delay KVP packets when negotiation is in  progress Long Li <longli@microsoft.com> - 2017-03-21 00:30 +0100

csiph-web