Re: Using VMChannel to communicate with the host.

Cameron Macdonell
2007-09-11T14:36:03Z

On 11-Sep-07, at 1:09 AM, Dor Laor wrote:

> Cam Macdonell wrote:
>>
>> Dor Laor wrote:
>> > I just tested it, it got a little deprecated over time since it
>> call
>> > pci_module_init instead of pci_register_* and some more irq
>> function
>> > deprecation.The sysfs interface in not complete and you can't
>> read/write
>> > from the device.
>> > The qemu parameters are -vmchannel di:2258,unix:/tmp/file,server
>> > 2258 is the vendor id for the device, you can use unix sockets
>> ot even
>> > tcp for the host end.
>> >
>>
>> Hi Dor,
>>
>> Thanks, that got it up and running. But in the hypercall.c code
>> (from
>> the git repo) there is a "hello host" message that looks like it
>> should
>> be written to the host. How do I trigger that to be sent so my very
>> simple "listening" program can read it?
>>
>> Thanks,
>> Cam
>>
> You need to open the unix socket you passed to the vmchannel
> parameter.
> An easier alternative is to use -vmchannel di:2258,tcp://
> 0:4444,server.
> Before the guest loads you'll need to telnet the 4444 port and then
> you should receive the
> hello world output once the driver is up.
> -Dor

I tried having a program listening on the unix domain socket.
Actually, the VM won't even start until a program connects to the
socket. I didn't get the message with my listening program, but I'll
try the telnet method as I haven't programmed a socket in a while so
I may have missed a step.

While getting this working is novel to me, it seems from your email
that not much can be done with the hypercall interface in terms of
host-VM or VM-to-VM communication, correct? If reading and writing
don't work, how can one exchange info between VMs? I'll look forward
to the virtIO implementation.

Thanks,
Cam

-----------------------------------------------
A. Cameron Macdonell
Ph.D. Student
Department of Computing Science
University of Alberta
cam-edFDblaTWIyXbbII50Afww@public.gmane.org