[PATCH V2 1/1] Drivers: hv: vmbus: Enable interrupt driven flow control
kongjianjun at gmail.com
Sun Sep 7 11:43:45 UTC 2014
On Sat, Sep 6, 2014 at 8:29 AM, K. Y. Srinivasan <kys at microsoft.com> 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
> 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 at microsoft.com>
> 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, reserved1 here?
> ring_info->ring_size = buflen;
> ring_info->ring_datasize = buflen - sizeof(struct hv_ring_buffer);
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
More information about the devel