From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCHv1] xen: increase default number of PIRQs for hardware domains Date: Wed, 3 Dec 2014 16:08:07 +0000 Message-ID: <547F3567.2090305@citrix.com> References: <1417622660-23912-1-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1XwCU2-0002Gn-2R for xen-devel@lists.xenproject.org; Wed, 03 Dec 2014 16:08:54 +0000 In-Reply-To: <1417622660-23912-1-git-send-email-david.vrabel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: David Vrabel , xen-devel@lists.xenproject.org Cc: Ian Jackson , Keir Fraser , Ian Campbell , Jan Beulich , Tim Deegan List-Id: xen-devel@lists.xenproject.org On 03/12/14 16:04, David Vrabel wrote: > The default limit for the number of PIRQs for hardware domains (dom0) > is not sufficient for some (x86) systems. > > Since the pirq structures are individually and dynamically allocated, > the limit for hardware domains may be increased to the number of > possible IRQs. > > The extra_guest_irqs command line option now only allows changes to > the domU value. Any argument for dom0 is ignored. > > Signed-off-by: David Vrabel Reviewed-by: Andrew Cooper > --- > docs/misc/xen-command-line.markdown | 11 ++++------- > xen/common/domain.c | 7 +------ > 2 files changed, 5 insertions(+), 13 deletions(-) > > diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown > index 0866df2..d352031 100644 > --- a/docs/misc/xen-command-line.markdown > +++ b/docs/misc/xen-command-line.markdown > @@ -594,15 +594,12 @@ except for debugging purposes. > Force or disable use of EFI runtime services. > > ### extra\_guest\_irqs > -> `= [][,]` > +> `= []` > > -> Default: `32,256` > +> Default: `32` > > -Change the number of PIRQs available for guests. The optional first number is > -common for all domUs, while the optional second number (preceded by a comma) > -is for dom0. Changing the setting for domU has no impact on dom0 and vice > -versa. For example to change dom0 without changing domU, use > -`extra_guest_irqs=,512` > +Change the number of PIRQs available for guests. This limit does not > +apply to hardware domains (dom0). > > ### flask\_enabled > > `= ` > diff --git a/xen/common/domain.c b/xen/common/domain.c > index 4a62c1d..a88d829 100644 > --- a/xen/common/domain.c > +++ b/xen/common/domain.c > @@ -231,14 +231,11 @@ static int late_hwdom_init(struct domain *d) > #endif > } > > -static unsigned int __read_mostly extra_dom0_irqs = 256; > static unsigned int __read_mostly extra_domU_irqs = 32; > static void __init parse_extra_guest_irqs(const char *s) > { > if ( isdigit(*s) ) > extra_domU_irqs = simple_strtoul(s, &s, 0); > - if ( *s == ',' && isdigit(*++s) ) > - extra_dom0_irqs = simple_strtoul(s, &s, 0); > } > custom_param("extra_guest_irqs", parse_extra_guest_irqs); > > @@ -324,10 +321,8 @@ struct domain *domain_create( > atomic_inc(&d->pause_count); > > if ( !is_hardware_domain(d) ) > - d->nr_pirqs = nr_static_irqs + extra_domU_irqs; > + d->nr_pirqs = min(nr_static_irqs + extra_domU_irqs, nr_irqs); > else > - d->nr_pirqs = nr_static_irqs + extra_dom0_irqs; > - if ( d->nr_pirqs > nr_irqs ) > d->nr_pirqs = nr_irqs; > > radix_tree_init(&d->pirq_tree);