> -----Original Message----- > From: Amos Kong [mailto:kongjianjun@xxxxxxxxx] > Sent: Sunday, September 7, 2014 4:44 AM > To: KY Srinivasan > Cc: gregkh@xxxxxxxxxxxxxxxxxxx; open list; devel@xxxxxxxxxxxxxxxxxxxxxx; > olaf@xxxxxxxxx; apw@xxxxxxxxxxxxx; Jason Wang > Subject: Re: [PATCH V2 1/1] Drivers: hv: vmbus: Enable interrupt driven flow > control > > On Sat, Sep 6, 2014 at 8:29 AM, K. Y. Srinivasan <kys@xxxxxxxxxxxxx> wrote: > > > > In win8 we have a feature that allows for interrupt driven flow > > management for host/guest communication. For instance, if the host > > were blocked because there was no space available in the ringbuffer, > > the host could request that the guest send an interrupt when space > > becomes available in the ringbuffer (when the guest drains the ringbuffer). > > > > While this feature was implemented in the guest a while ago, we had > > not advertised that the guest supported this feature. This patch > > advertises the support to the host. > > > > For pre-win8 hosts, this has no effect since the size of the > > ringbuffer control structure has not changed and all changes have been > > backward compatible - unused/reserved space has been used to > implement > > this feature. > > > > In this version of the patch I have cleaned up the commit log based on > > feedback from Greg KH. > > > > Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> > > --- > > drivers/hv/ring_buffer.c | 5 +++++ > > 1 files changed, 5 insertions(+), 0 deletions(-) > > > > diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c index > > 15db66b..6361d12 100644 > > --- a/drivers/hv/ring_buffer.c > > +++ b/drivers/hv/ring_buffer.c > > @@ -361,6 +361,11 @@ int hv_ringbuffer_init(struct hv_ring_buffer_info > *ring_info, > > ring_info->ring_buffer->read_index = > > ring_info->ring_buffer->write_index = 0; > > > > + /* > > + * Set the feature bit for enabling flow control. > > + */ > > + ring_info->ring_buffer->feature_bits.value = 1; > > + > > This feature is enabled, do we need to reset pending_send_sz and > reserved1[12], reserved1[4028] here? > > > ring_info->ring_size = buflen; > > ring_info->ring_datasize = buflen - sizeof(struct > > hv_ring_buffer); > > All the pages for the ring buffer have already been zeroed out including the shared control structure. Look at vmbus_open() (drivers/hv/channel.c) where we allocate the ring buffer - we pass in the flag to Zero out the pages. Regards, K. Y > > -- > > 1.7.4.1 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe > > linux-kernel" in the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel