Ringbuffer usage in Linux Hyper-V drivers

From: Hank Janssen
Date: Wed Mar 03 2010 - 11:42:57 EST


I have been looking at one of the TODO items in the Linux Hyper-V drivers.

Specifically the one that says;

- remove RingBuffer.c to use in-kernel ringbuffer functions instead.

I spend some time figuring out the ring buffer capability inside of the Linux
Kernel to see if we could change the Hyper-V ring buffer out for the in-kernel
ring buffer capability.

The ring buffer in the Hyper-V Linux drivers is used to communicate with the
parent partition running Server 2008 Hyper-V. The ring buffer functionality on
the Hyper-V Linux drivers is written to be functionally compatible with" the
ring buffer functionality on the Hyper-V Server. Consequently, it is not
possible to make any changes that might break the compatibility with server
side ring buffer implementation.

There is a pretty good chance that ring buffer on Hyper-V will change to support
additional functionality. I did further investigations to check on other
virtualization technologies. And this same things seems to be true for XEN,
they also implemented their own ring buffer implementation on the guest side
because of their host side implementation.

So my question is to the community at large, am I missing something that would
enable me to use an existing ring buffer functionality somehow in the kernel?
If not, I want to remove the line from the TODO file that is requesting to use the
in-kernel ring buffer functionality.

Finally, while checking this out, I looked at a bunch of non virtualization device
drivers currently in the kernel. And all the ones I looked at have
implemented their own ring buffer. Is there a reason why this might be the case?

As usual, any help is appreciated.


Hank Janssen.
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/