RE: [PATCH 6/8] vmbus: remove unused low_latency option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Stephen Hemminger [mailto:stephen@xxxxxxxxxxxxxxxxxx]
> Sent: Tuesday, February 14, 2017 10:21 PM
> To: KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyan Yang
> <haiyang@xxxxxxxxxxxxx>
> Cc: devel@xxxxxxxxxxxxxxxxxxxxxx; Stephen Hemminger
> <sthemmin@xxxxxxxxxxxxx>
> 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 <sthemmin@xxxxxxxxxxxxx>
> ---
>  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
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux