> -----Original Message-----
> From: Stephen Hemminger [mailto:step...@networkplumber.org]
> Sent: Tuesday, February 14, 2017 10:21 PM
> To: KY Srinivasan <k...@microsoft.com>; Haiyan Yang
> <haiy...@microsoft.com>
> Cc: de...@linuxdriverproject.org; Stephen Hemminger
> <sthem...@microsoft.com>
> Subject: [PATCH 6/8] vmbus: remove unused low_latency option
> 
> This was intended for future use, but since the code is currently unused (and
> therefore dead and unused), remove it.
> 
> It can be restored when there is a use case.

Stephen, I do have a use case for this. I wanted to get this into the Greg's 
tree and then
Modify both netvsc and storvsc to use it. This is currently shipping as part of 
Clear Linux
and makes a significant difference in the boot time on Hyper-V.

K. Y
> 
> Signed-off-by: Stephen Hemminger <sthem...@microsoft.com>
> ---
>  drivers/hv/channel.c   |  2 +-
>  include/linux/hyperv.h | 36 ------------------------------------
>  2 files changed, 1 insertion(+), 37 deletions(-)
> 
> diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c index
> deb852238b2d..01d5bdb69770 100644
> --- a/drivers/hv/channel.c
> +++ b/drivers/hv/channel.c
> @@ -47,7 +47,7 @@ void vmbus_setevent(struct vmbus_channel *channel)
>        * For channels marked as in "low latency" mode
>        * bypass the monitor page mechanism.
>        */
> -     if (channel->offermsg.monitor_allocated && !channel->low_latency) {
> +     if (channel->offermsg.monitor_allocated) {
>               vmbus_send_interrupt(channel->offermsg.child_relid);
> 
>               /* Get the child to parent monitor page */ diff --git
> a/include/linux/hyperv.h b/include/linux/hyperv.h index
> b8807da6ef72..09d10a4a34f4 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -853,32 +853,6 @@ struct vmbus_channel {
>       struct rcu_head rcu;
> 
>       /*
> -      * For performance critical channels (storage, networking
> -      * etc,), Hyper-V has a mechanism to enhance the throughput
> -      * at the expense of latency:
> -      * When the host is to be signaled, we just set a bit in a shared page
> -      * and this bit will be inspected by the hypervisor within a certain
> -      * window and if the bit is set, the host will be signaled. The window
> -      * of time is the monitor latency - currently around 100 usecs. This
> -      * mechanism improves throughput by:
> -      *
> -      * A) Making the host more efficient - each time it wakes up,
> -      *    potentially it will process morev number of packets. The
> -      *    monitor latency allows a batch to build up.
> -      * B) By deferring the hypercall to signal, we will also minimize
> -      *    the interrupts.
> -      *
> -      * Clearly, these optimizations improve throughput at the expense of
> -      * latency. Furthermore, since the channel is shared for both
> -      * control and data messages, control messages currently suffer
> -      * unnecessary latency adversley impacting performance and boot
> -      * time. To fix this issue, permit tagging the channel as being
> -      * in "low latency" mode. In this mode, we will bypass the monitor
> -      * mechanism.
> -      */
> -     bool low_latency;
> -
> -     /*
>        * NUMA distribution policy:
>        * We support teo policies:
>        * 1) Balanced: Here all performance critical channels are @@ -926,16
> +900,6 @@ static inline void set_channel_pending_send_size(struct
> vmbus_channel *c,
>       c->outbound.ring_buffer->pending_send_sz = size;  }
> 
> -static inline void set_low_latency_mode(struct vmbus_channel *c) -{
> -     c->low_latency = true;
> -}
> -
> -static inline void clear_low_latency_mode(struct vmbus_channel *c) -{
> -     c->low_latency = false;
> -}
> -
>  void vmbus_onmessage(void *context);
> 
>  int vmbus_request_offers(void);
> --
> 2.11.0

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to