I ported the FE and BE to a new interdomain communication interface and the USB driver is mostly complete (the claim port interface needs to be fixed up and there is a state machine which needs to be fixed). I''m about halfway through the implementation of the interdomain communication interface. I defined a new interdomain communication interface because I wanted to decouple the driver from changes in the underlying infrastructure so I didn''t have to rewrite it a fourth time for the next flavour of xenbus. Also, I think the interdomain communication API I''ve written ought to be generally useful and save a lot of code if people reuse it in other drivers. I''ve attached a patch of the current code. It compiles until it gets to some undefined references for functions I''ve not implemented yet. I''m currently working on the endpoint object. This is going to be implemented in three layers: xenid_gnttab_channel, xenidc_xbgt_channel and a third layer not yet complete. The current endpoint implementation is crufty because I''m in the middle of factoring out the code into those three layers. Feedback on the code would be welcome. Harry. On Mon, 2005-10-24 at 16:56 +0100, Mark Williamson wrote:> Hi Harry, > > Could you tell me what the status was on this? Is there any chance of getting > a snapshot of the code online somewhere? > > Regarding the implementation, it sounds like you''ve done a good job making it > work with lots of USB devices. I am curious as to why you''re defining a new > interdomain communications interface, though - XenBus is meant to be there > for the forseeable future ... ? > > Thanks very much, > Mark >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Wow, 18k lines of code so far. Just out of curiosity, a friend pointed me to http://heanet.dl.sourceforge.net/sourceforge/usbip/usbip-0.1-2.6.13.tar.gz which he was looking at for trying to find a way to do usb on Xen 2.0. Would an approach like this be worth looking at? -Sean -- __________________________________________________________________ Sean Dague Mid-Hudson Valley sean at dague dot net Linux Users Group http://dague.net http://mhvlug.org There is no silver bullet. Plus, werewolves make better neighbors than zombies, and they tend to keep the vampire population down. __________________________________________________________________ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Sean Dague wrote:>Wow, 18k lines of code so far. > >Just out of curiosity, a friend pointed me to >http://heanet.dl.sourceforge.net/sourceforge/usbip/usbip-0.1-2.6.13.tar.gz >which he was looking at for trying to find a way to do usb on Xen 2.0. > >Would an approach like this be worth looking at? > >What an excellent idea. USB devices could keep working even after domain migration too :-) Regards, Anthony Liguori> -Sean > > > >------------------------------------------------------------------------ > >_______________________________________________ >Xen-devel mailing list >Xen-devel@lists.xensource.com >http://lists.xensource.com/xen-devel > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Tue, 2005-10-25 at 19:21 -0400, Sean Dague wrote:> Wow, 18k lines of code so far.Actually, the USB driver is only 8k raw lines, most of which is copyright comments. It''s only 900 ";" of code which I think is pretty small. Some of the rest of the code is duplicated because I''m in the middle of refactoring it. The remainder of the rest of the code is the common code that is generally required to turn Xenbus and grant-tables into a useful inter-domain communication mechanism. This is the code that''s currently replicated in all the other drivers. The reason that this portion of the code is bigger in my driver is because I''m coding a general solution which a) will work for device driver domains with driver restarts and loadable driver modules and b) is a service which can be used by new drivers in the future to save them from having yet another copy of the code.> > Just out of curiosity, a friend pointed me to > http://heanet.dl.sourceforge.net/sourceforge/usbip/usbip-0.1-2.6.13.tar.gz > which he was looking at for trying to find a way to do usb on Xen 2.0. > > Would an approach like this be worth looking at?The API of the inter-domain communication mechanism that I wrote the USB driver to is currently implemented using shared memory (grant-tables) for efficiency but is compatible with a network transparent implementation so could be extended to work through domain migration in the future. Naturally, if you extended the implementation of my interdomain communication API then any other drivers that had been written to use it would also benefit from the new functionality. The difference between what I have done and the above IP based solution is that I have explicitly created a solution which can have an efficient shared memory implementation in the normal case when domains are resident on the same physical machine and my solution is intentionally available to any other drivers that might choose to use it. Thanks for your input. I think I''ll continue with what I was doing for the time being. Harry.> > -Sean > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel