I sent this mail to xen-users, but no answer so I try here just in case: Hello everyone, I''m currently trying to run an Asterisk server in a Xen kernel under Dom0 (debian kernel 2.6.18 with xen hypervisor 3.0.4). I had read of some possible timing issues with ztdummy (using rtc) under DomU, but I have a zaptel compatible PCI card (TDM400P), and I experience big problems with IRQ misses every time there is a bit of load on the server (for example, when an HVM DomU is running). The card is supposed to report 1000 interruptions per second, but it doesn''t, and consequences are horrible crackling sound in communications. Running the utility zttest to check for the stability of those interrupts under a small bit of load, i get: # ./zttest Opened pseudo zap interface, measuring accuracy... 99.609375% 99.609375% 99.218750% 99.316406% 99.804688% 99.414062% 99.121094% 99.511719% 99.121094% 99.316406% 99.707031% 99.707031% 98.730469% 99.414062% 99.902344% 99.218750% 100.000000% 99.414062% 98.828125% 99.218750% 99.316406% 98.449707% 100.000000% (from digium: results should be >= 99.98 in order not to have sound problems) I tried about everything I could find on Asterisk documentation: moving PCI slots, noapic and acpi=off boot options, play with different kernel options: iosched/preemption/timer/..., play with BIOS PCI options, PCI latencies, IRQ balance, smp_afinity, ................ but impossible to come up with anything correcting that problem. I then mailed to Asterisk user mailing list and they told me: "Xen has many, many problems with interrupt handling and is utterly unsuitable for running anything that depends on hardware peripherals. I speak from very painful experience. There is no way, under any circumstance, that I would try to run Asterisk with interface cards in a Xen environment. It''s too bad you wasted so much time trying to fix it -- it''s never going to work." Does anyone have an idea of how to possibly resolve this issue, or should I really abandon the idea using Xen and Asterisk together? # xm info host : sol release : 2.6.18 version : #3 SMP Fri May 11 11:32:34 CEST 2007 machine : x86_64 nr_cpus : 2 nr_nodes : 1 sockets_per_node : 1 cores_per_socket : 2 threads_per_core : 1 cpu_mhz : 2009 hw_caps : 178bfbff:e3d3fbff:00000000:00000010:00000001:00000000:00000003 total_memory : 2047 free_memory : 136 xen_major : 3 xen_minor : 0 xen_extra : .3-1 xen_caps : xen-3.0-x86_64 xen_pagesize : 4096 platform_params : virt_start=0xffff800000000000 xen_changeset : Tue Oct 17 22:09:52 2006 +0100 cc_compiler : gcc version 4.1.2 20061028 (prerelease) (Debian 4.1.1-19) cc_compile_by : ultrotter cc_compile_domain : debian.org cc_compile_date : Fri Nov 3 00:21:27 CET 2006 xend_config_format : 2 # cat /proc/interrupts CPU0 CPU1 1: 94 0 Phys-irq i8042 6: 3 0 Phys-irq floppy 8: 0 0 Phys-irq rtc 9: 0 0 Phys-irq acpi 14: 63 0 Phys-irq ide0 16: 1 0 Phys-irq libata, eth3 17: 532462 0 Phys-irq libata 18: 4102 0 Phys-irq libata 19: 493234 0 Phys-irq sky2, eth0 20: 689908 0 Phys-irq eth1 21: 5559727 0 Phys-irq wctdm 256: 3022027 0 Dynamic-irq timer0 257: 522260 0 Dynamic-irq resched0 258: 43 0 Dynamic-irq callfunc0 259: 0 432127 Dynamic-irq resched1 260: 0 106 Dynamic-irq callfunc1 261: 0 1743951 Dynamic-irq timer1 262: 1020 0 Dynamic-irq xenbus 263: 0 0 Dynamic-irq console NMI: 0 0 LOC: 0 0 ERR: 0 MIS: 0 Thanks, François. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
> I''m currently trying to run an Asterisk server in a Xen kernel under > Dom0 (debian kernel 2.6.18 with xen hypervisor 3.0.4). I had read of > some possible timing issues with ztdummy (using rtc) under DomU, but I > have a zaptel compatible PCI card (TDM400P), and I experience big > problems with IRQ misses every time there is a bit of load on the server > (for example, when an HVM DomU is running). The card is supposed to > report 1000 interruptions per second, but it doesn''t, and consequences > are horrible crackling sound in communications. Running the utility > zttest to check for the stability of those interrupts under a small bit > of load, i get:I believe folk have had success running asterisk in a domU and assigning the PCI device directly to the guest. It''s best to set the affinity masks for other guests and dom0 such that the domU with asterisk in it has a dedicated physical CPU core. We ran asterisk on an older version of Xen without any problems, and nothing has changed that should effect xen''s ability to do this. [you could try using the sedf scheduler if you still have problems with ''credit''] Ian _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
I actually first asked to asterisk mailing lists, and a few persons told me that it was Xen''s fault, as it was not yet ''mature'' enough to have a good IRQ handling under load. Note that I made tests the last few days as I wasn''t sure if it was Xen or not, and the exact same system works perfectly with a normal Linux kernel (same config file except for Xen stuff that are removed). A Dom-0 kernel without any VMs running comports itself the way I described (bad), and I tried both schedulers (sedf and credit) without success. It doesn''t appear to be a load problem as the load is about the same with the non-Xen kernel I tried, but with IRQ handling in load period. I''m talking about a machine that is certainly not over-loaded, but that once in a while suffers some iowait for disk access. Under Xen kernel, if I kill everything I can and only leave Asterisk with at most one simultaneous conversation, it works quite nice. I''m using the debian (I think they actually come from fedora) patches for 2.6.18, and just want to know if this issue is known or has/will been/be resolved somehow in future versions, if there is anyway I can deal with it with some kernel configuration, or if I should wait a few months/years more to be able to use Xen in my specific setting. Thanks, François. Ian Pratt wrote:>> I''m currently trying to run an Asterisk server in a Xen kernel under >> Dom0 (debian kernel 2.6.18 with xen hypervisor 3.0.4). I had read of >> some possible timing issues with ztdummy (using rtc) under DomU, but I >> have a zaptel compatible PCI card (TDM400P), and I experience big >> problems with IRQ misses every time there is a bit of load on the server >> (for example, when an HVM DomU is running). The card is supposed to >> report 1000 interruptions per second, but it doesn''t, and consequences >> are horrible crackling sound in communications. Running the utility >> zttest to check for the stability of those interrupts under a small bit >> of load, i get: >> > > I believe folk have had success running asterisk in a domU and assigning the PCI device directly to the guest. It''s best to set the affinity masks for other guests and dom0 such that the domU with asterisk in it has a dedicated physical CPU core. > > We ran asterisk on an older version of Xen without any problems, and nothing has changed that should effect xen''s ability to do this. [you could try using the sedf scheduler if you still have problems with ''credit''] > > Ian > > _______________________________________________ > 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