Hi, I''ve been working toward porting OpenBSD/amd64 for the Xen Virtual Machine Monitor for a few months. It''s not 100% complete, but most is already working for domU. Here''s a list of the current issues/missing things: - virtual NIC driver is not fonctionnal, some part of the code still needs to be fixed for packet transfer from/to Xen to work. - events/clock issue: there seems to be a race condition leading to clock not ticking, hence putting system to sleep till a keyboard/network/disk interrupt is received. - SMP is currently not supported. I''ll make a kernel binary, a disk image and sources available shortly. Regards, Mathieu _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 8 Jun 2006, at 10:48, Mathieu Ropert wrote:> - events/clock issue: there seems to be a race condition leading to > clock not ticking, hence putting system to sleep till a > keyboard/network/disk interrupt is received.The ticker doesn''t tick when you block. Your idle loop needs to disable interrupts, set a one-shot timer, then block. See safe_halt() in our Linux source tree (arch/i386/kernel/time-xen.c) -- the function expects to be called with interrupts disabled and caller should also have already checked for any other threads being runnable. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser wrote:> > On 8 Jun 2006, at 10:48, Mathieu Ropert wrote: > >> - events/clock issue: there seems to be a race condition leading to >> clock not ticking, hence putting system to sleep till a >> keyboard/network/disk interrupt is received. > > > The ticker doesn''t tick when you block. Your idle loop needs to > disable interrupts, set a one-shot timer, then block. See safe_halt() > in our Linux source tree (arch/i386/kernel/time-xen.c) -- the function > expects to be called with interrupts disabled and caller should also > have already checked for any other threads being runnable. > > -- Keir >Thanks! That solved my issue. Just disabling interrupts before i call my idle function did the trick. Mathieu _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser wrote:> > On 8 Jun 2006, at 10:48, Mathieu Ropert wrote: > >> - events/clock issue: there seems to be a race condition leading to >> clock not ticking, hence putting system to sleep till a >> keyboard/network/disk interrupt is received. > > > The ticker doesn''t tick when you block. Your idle loop needs to > disable interrupts, set a one-shot timer, then block. See safe_halt() > in our Linux source tree (arch/i386/kernel/time-xen.c) -- the function > expects to be called with interrupts disabled and caller should also > have already checked for any other threads being runnable. > > -- Keir >I''ve attached 3 patches needed for OpenBSD/amd64 to work. The two first address a bug in loadelfsymtab() which load the ELF symbol table at a bad address on x86_64. More explanations can be found in one of my older posts. The third is a first try to fix the issue I have with linear pagetables. It does fix my issue, and doesn''t break my Linux dom0, but besides this fact, I have no guarantee. Any feedback or advice would be appreciated. Mathieu _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel