From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: Physical and dynamic event channels Date: Fri, 11 Aug 2006 08:04:33 -0700 Message-ID: <44DC9C81.9040305@goop.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: Chris Wright , xen-devel@lists.xensource.com, Ian Campbell List-Id: xen-devel@lists.xenproject.org Keir Fraser wrote: > 256 would be enough for anyone I think. domain0 is obviously the main user > of event channels but most of those are demuxed to userspace rather than the > kernel IRQ space. > > Adding a level of indirection for non-domain-0 wouldn't be too hard. We have > control over which IRQ a PCI device driver thinks it is binding to because > we control the PCI config space via pciback. We need more care for older > devices, but could arrange that by maintaining a 1:1 mapping for legacy PIC > irq range (0 to 15). > > Doing the same for domain 0 is probably more 'exciting'. If we could force > the 'vector space' IRQ allocation strategy of PCI_MSI then I think this is > more plausible -- since that effectively gives a level of indirection from > the GSI space. The vectors that Xen currently hands out to domain0 are real > vector numbers but, of course, it would be trivial to add a level of > indirection there, or in the caller. > > This all raises an obvious question: what do you think the scope of work for > upstream merging right now should be? Previously it was non-driver domUs > only (and a simplified form at that). Are you thinking about upstreaming > everything, or is this just review and preparation for that effort in the > future? > My plan is: 1. simple domU (UP only, shadow page tables, no pciback) 2. domU SMP (to really exercise the paravirt interface) 3. add more to domU (explicit MMU ops, optimising, etc) 4. port to x86-64 5. dom0 Once the paravirt version of simple domU is working, it will be time to consider how to sync all this with the xen-unstable tree. Also after step 1, I don't have any strong feelings about the order. I haven't really looked into what the dom0 work really requires, so I'm not sure whether it can start early, or if it would be best done once domU is relatively sophisticated. Similarly I'm not sure how much work would be required for 64-bit (though an obvious prerequisite is that we implement paravirtops for x86-64). As far as the event channels stuff goes, I think I'll keep it as simple as possible for now, and just support as much as needed to get domU going, with a view to making it more complex later. J