> -----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