Re: [PATCH] add POWER Virtual Management Channel driver

From: Stewart Smith
Date: Thu Feb 18 2016 - 00:30:34 EST


Steven Royer <seroyer@xxxxxxxxxxxxxxxxxx> writes:
> On 2016-02-17 16:31, Greg Kroah-Hartman wrote:
>> On Wed, Feb 17, 2016 at 03:18:26PM -0600, Steven Royer wrote:
>>> On 2016-02-16 16:18, Greg Kroah-Hartman wrote:
>>> >On Tue, Feb 16, 2016 at 02:43:13PM -0600, Steven Royer wrote:
>>> >>From: Steven Royer <seroyer@xxxxxxxxxx>
>>> >>
>>> >>The ibmvmc driver is a device driver for the POWER Virtual Management
>>> >>Channel virtual adapter on the PowerVM platform. It is used to
>>> >>communicate with the hypervisor for virtualization management. It
>>> >>provides both request/response and asynchronous message support through
>>> >>the /dev/ibmvmc node.
>>> >
>>> >What is the protocol for that device node?
>>> The protocol is not currently published. I am pushing on getting it
>>> published, but that process will take time. If you have a PowerVM
>>> system
>>> with NovaLink, it would not be hard to reverse engineer it... If you
>>> don't
>>> have a PowerVM system, then this driver isn't interesting anyway...

Stephen - if you need some help pushing for it to be published, let me
know, there's a few internal things I could help push.

>> You can't just expect us to review this code without at least having a
>> clue as to how it is supposed to work?
> There are two layers to the protocol. The first layer is the only layer
> that the driver actually cares about. The second layer is just a
> payload that is between the application and the hypervisor and can
> change independently from the kernel/driver (this is what is transported
> over the /dev/ibmvmc node). The first layer technically is published in
> the PAPR (appendix G), but it is not trivial for most people to access

https://members.openpowerfoundation.org/document/dl/469 is LoPAPR which
has been published through OpenPower Foundation and anyone can access,
although Appendix G there is on EEH. Although VMC (Virtual Management
Channel) is mentioned in that document the details aren't there... so
it's possible that this is only in some other PAPR version :/
and... looking in internal places, it is. *sigh*

With my OpenPower Foundation hat on, I'll say that it's a
work-in-progress getting all this documentation in order.

The questions of if it's a sensible hypervisor to partition interface
and if it's a sensible userspace API are open for debate :)

Would we implement this way of communicating between a KVM guest and the
host linux system? If not, then it's probably not a generally good
idea. That being said, it seems to be what already exists in PowerVM

--
Stewart Smith
OPAL Architect, IBM.