All of lore.kernel.org
 help / color / mirror / Atom feed
* DomU-Dom0 communication question
@ 2007-05-02 14:26 mk.xen-devel
  2007-05-02 16:04 ` Ryan Riley
  0 siblings, 1 reply; 3+ messages in thread
From: mk.xen-devel @ 2007-05-02 14:26 UTC (permalink / raw)
  To: xen-devel

Hi all,

I need to create a custom communication channel between DomU and Dom0 in order to send arbitrary messages/buffers between applications in Dom0 and DomU. 

Basically, I am thinking about making a char control driver on both sides that would transport those messages to subscribers on either end using defined IOCL calls.

I am looking at backend/frontend drivers and I don't think it would work for what I want to do as fron/back ends don't have any devices associated with it. 

Would it be better to utilize event channel directly or write frontend/backend drivers and control drivers on both ends? Or maybe there is another mechanism that already exists in xen environment and I am just trying to do things the hard way? Any advise is greatly appreciated.

Thanks.

Max

^ permalink raw reply	[flat|nested] 3+ messages in thread
* Re: DomU-Dom0 communication question
@ 2007-05-02 19:06 mk.xen-devel
  0 siblings, 0 replies; 3+ messages in thread
From: mk.xen-devel @ 2007-05-02 19:06 UTC (permalink / raw)
  To: rileyrd; +Cc: xen-devel

On 5/2/07, Ryan Riley <rileyrd@gmail.com> wrote:
> > I am looking at backend/frontend drivers and I don't think it would work
> for what I want to do as fron/back ends don't have any devices associated
> with it.
> > 
> 
> Hmm, it sounds like you may be a bit confused regarding how the split
> drivers work.  

Yes, I am :-)

> For any useful frontend/backend device each side ends up
> being two drivers in one.  One is the frontend/backend driver, the other is
> the device that the OS sees.  For example, the networking frontend has all
> of the code the being a Xen frontend driver (event channels, probe handling,
> etc) and is also a network device that the guest interacts with.  In a sense
> it registers itself as two drivers. 

That is the driver I was going through to get an idea how it works. I see the network adapter registration part, but since I am not familiar with network drivers APIs I got confused what exactly is going on. 

> You could definitely write a split driver that has character devices on both
> ends that share data.  My backend driver for the project I mentioned above
> is exactly that.  (Frontend kernel puts data onto a ring buffer, backend
> kernel reads it off and makes it available as a character device.) 

Sounds exactly what I need, except I was thinking to have messages in both directions.

> This probably sounds bad, but if you can get away with it I would do
> everything is user space and send your arbitrary data/buffers over the
> network link.  Trust me when I say that you'll lose less hair that way. 

I think, the split drivers give me a better control for the task I am doing. I do not want to rely on network being setup correctly.

> If you decide to go the split driver route, I can supply you with my code. 
> It isn't pretty, but it may help you out.  Let me know if you're interested.

I am definitely  interested! I was out of writing Linux drivers for quite some time and I appreciate any help I can get.

Thanks.

Max

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

end of thread, other threads:[~2007-05-02 19:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-02 14:26 DomU-Dom0 communication question mk.xen-devel
2007-05-02 16:04 ` Ryan Riley
  -- strict thread matches above, loose matches on Subject: below --
2007-05-02 19:06 mk.xen-devel

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.