[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] simple backend, frontend
I have actually written some code for xen & xend allowing you to request the creation of an event channel and share a memory page. It's still work in progress, but it works fine. No crashes, very simple communication scheme. It's not in the repository, since i don't have access to it yet. But I'm working with Rolf in IRC, so i guess it will eventually get there. The only possible problem i believe is the ctrl_if_register_receiver(). I think you can only register a single receiver for each control message type per domain. So even with a generic shared channel mechanism you will be able to use it just from a single driver/module. George P. On Wed, 17 Nov 2004 21:59:04 +0000, Keir Fraser <keir.fraser@xxxxxxxxxxxx> wrote: > > Hi, > > > > Writing a custom backend driver...... can a custom backend driver be > > a module in the linux kernel or does it have to be built in? > > > > write now the backend and front end are very simple. > > > > a user level program establishes a shared event channel using - > > libxc. this part is complete. > > If you mean that the user-level program creates the event channel, I > would recommend not doing that. Instead, your frontend should > allocate an unbound port that the backend can then connect to (or vice > versa). i.e., frontend does EVTCHNOP_alloc_unbound. > > I guess if you are using an existing front-end then this doesn't make > sense as you need to go along with the existing protocol. However, > both blkif and netif protocols will change to the new evtchn creation > model in the near future. > > > this is the plan for the next part but need some info: > > > > i manually plan to install the module passing the eventchannel port. > > as a command line argument to the module. but i need to know if a > > linux kernel module can access the xen api such as > > "bind_evtchn_to_irq". > > As Bin says, some functions will need EXPORT_SYMBOL(). Bin checked in > EXPORT_SYMBOL(bind_evtchn_to_irq) earlier today. > > -- Keir > > > > > thanks. > > > > > > Deepak > > > > > > > > > > On Sun, 14 Nov 2004 15:42:44 +0000, Keir Fraser > > <keir.fraser@xxxxxxxxxxxx> wrote: > > > > > > > > > > Hi, > > > > > > > > Sorry I seem to be stuck and asking similar questions. > > > > > > > > > > linux-2.6.9-xen-sparse/arch/xen/kernel/evtchn.c > > > > > > > > > > That's the one in kernel users will call into. > > > > > > > > That file does not contain any code to create event channels. > > > > > > > > > > > > Do I have to write some code in Xen tht uses > > > > xen/common/event_channel.c creates > > > > an event channel on init. And then pass the port returned to some > > > > other program which passes it to the other domain? > > > > > > The 'old' model for creating event channels was that xend would create > > > them and pass each domain the id of its end. So no creation code > > > needed in XenLinux. > > > > > > The 'new' model (in which one domain creates an unbound port that the > > > other end then connects to) is rather recent and so no drivers in > > > XenLinux use it, so there's no code to steal. :-) > > > > > > evtchn.c is all about receipt and demux of events. You should create > > > your own code to create an unbound port, then you should use > > > bind_evtchn_to_irq() to get yourself a Linux IRQ number that you can > > > then get interrupts for by using 'request_irq()'. > > > > > > If you're implementing a user-space driver then you won't want to bind > > > into the Linux IRQ subsystem -- instead you would open /dev/xen/evtchn, > > > bind to your event-channel port, then read() or poll() your file > > > descriptor. Currently only one process can have /dev/xen/evtchn open > > > at any time, but I know of at least two patches to fix this, so I > > > guess one of these ought to be checked in to the tree! > > > > > > So, yes, in short, you have to write the bit of code that you describe > > > in your email. :-) > > > > > > -- Keir > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: InterSystems CACHE > FREE OODBMS DOWNLOAD - A multidimensional database that combines > robust object and relational technologies, making it a perfect match > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.sourceforge.net/lists/listinfo/xen-devel > ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |