From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH 0/6] x86: break up post-boot non-order-zero allocations Date: Tue, 05 Apr 2011 12:59:14 +0100 Message-ID: References: <4D9AECA60200007800039F26@vpn.id2.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4D9AECA60200007800039F26@vpn.id2.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jan Beulich , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On 05/04/2011 09:19, "Jan Beulich" wrote: > With this, structure sizes are below page size, and no longer depend > significantly on NR_CPUS. This series, however, doesn't eliminate > all non-order-zero allocations that happen post boot (i.e. mostly > during domain creation). Items that are known to need addressing > are > - nr_irqs-sized allocation of ->arch.irq_pirq[] in > xen/arch/x86/domain.c:arch_domain_create() > - ->nr_pirqs-sized allocations in > xen/drivers/passthrough/io.c:pt_irq_create_bind_vtd() > - ->nr_pirqs-sized allocation of ->arch.pirq_irq[] in > xen/arch/x86/domain.c:arch_domain_create() > - ->nr_pirqs-sized allocation of ->pirq_to_evtchn[] in > xen/common/domain.c:domain_create() I wonder whether some of these irq-indexed and pirq-indexed values could be agregated together into two separate structs, and then keep them in irq-indexed and a pirq-indexed radix trees? It might actually be more space efficient if nr_irqs or nr_pirqs is large, quite apart from the benefit of getting rid of the multi-page allocations. -- Keir