All of lore.kernel.org
 help / color / mirror / Atom feed
* Porting libvchan to use the Windows PV Drivers
@ 2015-01-27  3:01 Christian Refvik
  0 siblings, 0 replies; 2+ messages in thread
From: Christian Refvik @ 2015-01-27  3:01 UTC (permalink / raw)
  To: win-pv-devel; +Cc: xen-devel

Hi guys,

I'm a new Xen developer.  However, I've been looking at porting the libvchan library so that it uses the Windows PV Drivers that are currently checked in.  As far as libvchan is concerned, (I think) I understand it fairly well.  I've even started to create some documentation which I'm happy to post on the Xen wiki.

>From what I see, the libvchan basically relies on xenstore and libxc (XenCtrl).  The Windows PV drivers have the xeniface package contains the code used to access XenStore through XenBus.   I'm not sure about the equivalent of libxc, but most of the functionality looks like it lives in the xenbus package.  The issue seems like libxc allows user space applications to make calls to the hypervisor using the devices privcmd, evtchn, and gntalloc.  I don't know how this should work on Windows, since the device driver structure is different than Linux.

1.  Where should I start looking in the Windows PV side to get more familiar?
2.  Where is there some documentation on how can I use the Windows PV drivers to build my own custom drivers on top of the Windows PV interfaces?
3.  How should I correctly port libvchan to Windows?  Should libvchan be a new type of driver that might uses xen.sys directly?  Its not clear to me keep a high bandwidth and still get the best latency.

Any suggestions and help is appreciated.

Thanks,
Christian

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Porting libvchan to use the Windows PV Drivers
       [not found] <B4DC7AAB07005D4DA887F0BE517884F2A2C2D8@mailbox02.onlive.corp>
@ 2015-01-28 20:13 ` Paul Durrant
  0 siblings, 0 replies; 2+ messages in thread
From: Paul Durrant @ 2015-01-28 20:13 UTC (permalink / raw)
  To: Christian Refvik, win-pv-devel; +Cc: xen-devel

> -----Original Message-----
> From: win-pv-devel-bounces@lists.xenproject.org [mailto:win-pv-devel-
> bounces@lists.xenproject.org] On Behalf Of Christian Refvik
> Sent: 27 January 2015 03:02
> To: win-pv-devel@lists.xenproject.org
> Cc: xen-devel@lists.xenproject.org
> Subject: [win-pv-devel] Porting libvchan to use the Windows PV Drivers
> 
> Hi guys,
> 
> I'm a new Xen developer.  However, I've been looking at porting the libvchan
> library so that it uses the Windows PV Drivers that are currently checked in.

Hi,

  I think that would be a great idea.

> As far as libvchan is concerned, (I think) I understand it fairly well.  I've even
> started to create some documentation which I'm happy to post on the Xen
> wiki.
> 
> From what I see, the libvchan basically relies on xenstore and libxc (XenCtrl).
> The Windows PV drivers have the xeniface package contains the code used
> to access XenStore through XenBus.

Currently the most functional interface to xenstore through XENIFACE is via WMI. WMI is very painful to use from anything other than .NET so I suspect it would need a more functional IOCTL based interface as a start.

>   I'm not sure about the equivalent of
> libxc, but most of the functionality looks like it lives in the xenbus package.
> The issue seems like libxc allows user space applications to make calls to the
> hypervisor using the devices privcmd, evtchn, and gntalloc.  I don't know how
> this should work on Windows, since the device driver structure is different
> than Linux.
> 

Continuing from above, I think IOCTL based interfaces (set up with IoRegisterDeviceInterface) in XENIFACE would be the way to go. XENBUS does contain the kernel implementations but I think XENIFACE is the right place to surface them to user space.

> 1.  Where should I start looking in the Windows PV side to get more familiar?

The best way to started is to get hold of source for each driver, build it and install it yourself. If you create debug builds then you should see a substantial amount of logging (via DbgPrint) so attaching a debugger to the VM is also a good idea.

> 2.  Where is there some documentation on how can I use the Windows PV
> drivers to build my own custom drivers on top of the Windows PV interfaces?

There's not much in the way of documentation. Each of the interface headers does contain some doxygen tagging though and there is a script in the repos to generate docs from these. 

> 3.  How should I correctly port libvchan to Windows?  Should libvchan be a
> new type of driver that might uses xen.sys directly?  Its not clear to me keep
> a high bandwidth and still get the best latency.
> 

As I said above, I think XENIFACE is the right place to do the coding. The libvchan equivalent should IMO be a Win32 DLL that is layered on the interfaces exposed by XENIFACE.

  Paul

> Any suggestions and help is appreciated.
> 
> Thanks,
> Christian
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-01-28 20:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-27  3:01 Porting libvchan to use the Windows PV Drivers Christian Refvik
     [not found] <B4DC7AAB07005D4DA887F0BE517884F2A2C2D8@mailbox02.onlive.corp>
2015-01-28 20:13 ` Paul Durrant

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.