Hi! first of all I''d like to thank you for helping me with all the problems I''ve had. My system works fine and that couldn''t be possible without you. Now I have another question for you: In my system there are two domains and I want one of them to be almost isolated. What I mean is that I want nearly all the interrupts to be handled by the domU while the dom0 takes care of just a NMI. An example could be dom0 handling IRQ1 and domU taking care of the rest.I''ve read that in some tools like the RTS Hypervisor it''s possible distributing the interrupts between the different domUs and I supose something similar can be done with XEN. Is it possible doing something more or less like that? Which configuration files need to be modified? In the manuals I''ve read until now I couldn''t find any information about it and I hope someone something about this. I can just use xm commands because virt-manager and virsh commands don''t seem to work for me. Thanks, Itziar _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Has anyone at least any idea of where can I find this info? _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
On Thu, Apr 30, 2009 at 1:20 PM, ITZIAR BALENCIAGA <ibalenciaga@aotek.es> wrote:> > Has anyone at least any idea of where can I find this info?Probably they''re as confused as I am reading your emails. Start by including the relevant information (possibly snippets from your previous mail) so everybody knows what you mean by "THIS INFO". That aside, what''s with this obsession about interrupts? What exactly are you trying to do here? I have a feeling you''re trying the way to implement a solution to a problem, but the solution you picked may not be a correct (or possible) one. Start by describing what you want to achive. Do you want to implement some real-time system with Xen? Do you want to implement a VOIP server? Do you want to dedicate a device to domU? Regards, Fajar _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
I''m sorry if I haven''t explained myself well. All these things are new for me and probably I haven''t done it ok. I''ll try it again. Here it is my previous mail where I explain more or less what I want to do: --- first of all I''d like to thank you for helping me with all the problems I''ve had. My system works fine and that couldn''t be possible without you. Now I have another question for you: In my system there are two domains and I want one of them to be almost isolated. What I mean is that I want nearly all the interrupts to be handled by the domU while the dom0 takes care of just a NMI. An example could be dom0 handling IRQ1 and domU taking care of the rest.I''ve read that in some tools like the RTS Hypervisor it''s possible distributing the interrupts between the different domUs and I supose something similar can be done with XEN. Is it possible doing something more or less like that? Which configuration files need to be modified? In the manuals I''ve read until now I couldn''t find any information about it and I hope someone something about this. I can just use xm commands because virt-manager and virsh commands don''t seem to work for me. --- You are right when you think about a real-time system with Xen. I have a dual core and up to now I have installed Xen to have a dom0 with Linux and a domU with Windows. I''ve set CPU affinity so that each OS has his own core. My idea is putting the real-time part in the linux part and the interface in Windows. The real-time part works like this: an interrupt is generated and send every x ms. It interrupts the system and some values are taken. Then the interface uses this vale to make several operations. What I want is that when anything happens the windows part to handle it. That is, that nothing disturbs the real-time part in order to maintain the necessary performance. In a simple way what I want is something like telling the interrupts where they have to go to be handled, if they have to go to core 0 or 1. I hope my explanation was clearer now and my idea is understandable. Thanks for your patience. Itziar _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
On Thu, Apr 30, 2009 at 2:43 PM, ITZIAR BALENCIAGA <ibalenciaga@aotek.es> wrote:> > I''m sorry if I haven''t explained myself well. All these things are new for > me and probably I haven''t done it ok.Actually what I meant was you should consider using inline replies, like what I did for your email. It makes reading easier, thus it will make it easier for others to understand what you mean. If you deliberately make it hard for others to understand your email (like top-posting, or including entire email digest, or simply remove ALL the previous emails during replying) then it''s unlikely that anybode will even try to help you, since they have no idea what you mean.> You are right when you think about a real-time system with Xen. I have a > dual core and up to now I have installed Xen to have a dom0 with Linux and a > domU with Windows. I''ve set CPU affinity so that each OS has his own core. > My idea is putting the real-time part in the linux part and the interface in > Windows. The real-time part works like this: an interrupt is generated and > send every x ms. It interrupts the system and some values are taken. Then > the interface uses this vale to make several operations. What I want is that > when anything happens the windows part to handle it. That is, that nothing > disturbs the real-time part in order to maintain the necessary performance.First of all virtualized system (like Xen) might not be the best candidate for real-time or time-sensitive operations (like VOIP, for example). While some people DO use VOIP server under Xen, the virtualization layers (for CPU, network, and disk) will introduce more overhead and more latency which (depending or your needs) might or might not be tolerable. Second of all, what you''re saying doesn''t make any sense to me. Seriously. You''re saying that when an interrupt happens (possibly because of some input from some I/O device) you want the dom0 to take some values (read the I/O device?), and then PASS the values to another domian (which, in this perspective, is essentially another machine), and THEN have the other OS process it? Doesn''t look like a good real-time system to me. The process of passing values between different machines (what do you have in mind? TCP-IP?) by itself could introduce delay and latency which might be unsuitable for real-time system.> In a simple way what I want is something like telling the interrupts where > they have to go to be handled, if they have to go to core 0 or 1.Things like irqbalance can be used to move interrupts between processors on the same kernel. It has no idea about other operating system/kernels running in the same virtualized system. I suggest you rethink your setup, or (If I incorrectly understand your explanation) put a clearer description of what you want. Who knows, perhaps all you need is simply to let domU (Windows) have a direct access to the interrupt-generator device, which might be possible using PCI or USB passthrough. Regards, Fajar _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Thanks Fajar for trying to understand me. I don''t really understand very well how the real-time system works but I know that it''s now working fine in a single core system and just with Windows as the OS. I''m making a project to try to get better results in a dual core system and I''ve read about the benefits of virtualization for real-time systems. I''ve been reading the user''s guide of several commercial products and realized that they were the best solution. The problem is that they are expensive and I was asked to do something similar (a simplified version, of course) but with open source. I decided doing it with Xen but it seems it isn''t possible making all what the commercial product promises (or at least I can''t find the way of doing it). I''ll put here the info about the RTS Hypervisor that made me believe this was possible: RTS Hypervisor is a software agent that partitions hardware resources in such way that multiple OS can be run concurrently and in complete independence of one another and at full speed, without an intervening software layer to detract from native real-time processing. Users assign computer resources and OSs to the various CPU cores. The user makes nearly all product settings and customizations in a single, plain-text ASCII file. Here you may specify the number of CPU cores and the amount of memory to be used by a particular OS. The user can also assign legacy-device (non-PCI) interrupts and PCI devices to the exclusive use of specific operating systems. In a running system, in order not to impair an operating systems realtime characteristics, the Hypervisor neither processes nor redirects any IRQs. During startup, it programs the systems Interrupt Controller so that every interrupt is dispatched directly (without intermediate software processing) to its designated CPU core. Each OS processes its own interrupts. It''s often necessary for applications under one OS to communicate with and possibly coordinate activities with applications running under another OS. To this end, two communication mechanisms have been implemented: Shared Memory and Virtual Network. Virtual Network moves the data through an area of main memory specifically designated for that purpose. Since data is transferred through memory, this is a quick method for moving data from an application program under one operating system to another. After reading it I thought I could make something similar but perhaps it isn''t possible with Xen. I''ve taken the info direct from the user''s guide so I hope this time you can understand my goals better. Regards, Itziar -----Mensaje original----- De: xen-users-bounces@lists.xensource.com en nombre de Fajar A. Nugraha Enviado el: jue 30/04/2009 15:22 Para: Xen List Asunto: Re: [Xen-users] Interrupt distribution On Thu, Apr 30, 2009 at 2:43 PM, ITZIAR BALENCIAGA <ibalenciaga@aotek.es> wrote:> > I''m sorry if I haven''t explained myself well. All these things are new for > me and probably I haven''t done it ok.Actually what I meant was you should consider using inline replies, like what I did for your email. It makes reading easier, thus it will make it easier for others to understand what you mean. If you deliberately make it hard for others to understand your email (like top-posting, or including entire email digest, or simply remove ALL the previous emails during replying) then it''s unlikely that anybode will even try to help you, since they have no idea what you mean.> You are right when you think about a real-time system with Xen. I have a > dual core and up to now I have installed Xen to have a dom0 with Linux and a > domU with Windows. I''ve set CPU affinity so that each OS has his own core. > My idea is putting the real-time part in the linux part and the interface in > Windows. The real-time part works like this: an interrupt is generated and > send every x ms. It interrupts the system and some values are taken. Then > the interface uses this vale to make several operations. What I want is that > when anything happens the windows part to handle it. That is, that nothing > disturbs the real-time part in order to maintain the necessary performance.First of all virtualized system (like Xen) might not be the best candidate for real-time or time-sensitive operations (like VOIP, for example). While some people DO use VOIP server under Xen, the virtualization layers (for CPU, network, and disk) will introduce more overhead and more latency which (depending or your needs) might or might not be tolerable. Second of all, what you''re saying doesn''t make any sense to me. Seriously. You''re saying that when an interrupt happens (possibly because of some input from some I/O device) you want the dom0 to take some values (read the I/O device?), and then PASS the values to another domian (which, in this perspective, is essentially another machine), and THEN have the other OS process it? Doesn''t look like a good real-time system to me. The process of passing values between different machines (what do you have in mind? TCP-IP?) by itself could introduce delay and latency which might be unsuitable for real-time system.> In a simple way what I want is something like telling the interrupts where > they have to go to be handled, if they have to go to core 0 or 1.Things like irqbalance can be used to move interrupts between processors on the same kernel. It has no idea about other operating system/kernels running in the same virtualized system. I suggest you rethink your setup, or (If I incorrectly understand your explanation) put a clearer description of what you want. Who knows, perhaps all you need is simply to let domU (Windows) have a direct access to the interrupt-generator device, which might be possible using PCI or USB passthrough. Regards, Fajar _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
On Wed, May 6, 2009 at 2:42 PM, ITZIAR BALENCIAGA <ibalenciaga@aotek.es> wrote:> at least I can''t find the way of doing it). I''ll put here the info about the > RTS Hypervisor that made me believe this was possible: >> Users assign computer resources and OSs to the various CPU cores. > The user makes nearly all product settings and customizations in a single, > plain-text ASCII file. Here you may specify the number of CPU cores and the > amount of memory to be used by a particular OS.Xen can do that.> The user can also assign > legacy-device (non-PCI) interrupts and PCI devices to the exclusive use of > specific operating systems.Not sure what they mean by "legacy-device (non-PCI) interrupts", but Xen can allocate (or rather, passthru) a PCI, USB, or SCSI device for a domU''s exclusive use. What are you using as interrupt source?> In a running system, in order not to impair an > operating systems realtime characteristics, the Hypervisor neither > processes nor redirects any > IRQs. During startup, it programs the systems Interrupt Controller so that > every interrupt is dispatched directly (without intermediate software > processing) to its designated CPU core.CMIIW, If I understand correctly this means any interrupts generated by a device is processed by the domain that handles it without going thru the hypervisor layer. I believe the same thing also applies to Xen where device drivers are in dom0 or domU (when using passthru), not in the hypervisor.> Each OS processes its own > interrupts.Also the same.> It''s often necessary for applications under one OS to communicate with and > possibly coordinate activities with applications running under another OS. > To this end, two communication mechanisms have been implemented: Shared > Memory and Virtual Network. > Virtual Network moves the data through an area of main memory specifically > designated > for that purpose. Since data is transferred through memory, this is a quick > method for moving data from an application program under one operating > system to another.Xen can also have "virtual network" (sort of). It goes thru dom0''s bridge, but since you can set it not to use dom0 physical layer (like ethernet card) you can easily achieve several Gbps when using domU - domU communication. There''s also Xenbus and Xenstore, which can be use as some sort of "shared-storage" for inter domain communication. See http://wiki.xensource.com/xenwiki/XenStore> > After reading it I thought I could make something similar but perhaps it > isn''t possible with Xen. I''ve taken the info direct from the user''s guide so > I hope this time you can understand my goals better.At this point I still say you need to define your requirements more clearly. AFAIK Windows is NOT a true real-time system (sometimes refered to as hard real time OS). If you''re using Windows, and it works, then IMHO it doesn''t matter much what hypervisor you use as long as they can present the interrupt source to Windows guest with as little delay as possible. Regards, Fajar _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users