Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp960585ybf; Fri, 28 Feb 2020 11:00:27 -0800 (PST) X-Google-Smtp-Source: APXvYqz71lG79Z9UkzyB2SKRctAadm3JY6DrGAYA4DTr1NDKoFBS6Sdx+vXDVi3mRhCm/3Ilc7Fs X-Received: by 2002:a9d:395:: with SMTP id f21mr4510292otf.67.1582916426819; Fri, 28 Feb 2020 11:00:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582916426; cv=none; d=google.com; s=arc-20160816; b=c3y/maWpT5IXYiFVGFbssx2rgZbKu/eAc4uW4/mP4lCJMcPu2h49bOKIvUDjEVjvTA vOGnrkuE88r9yP7v0J2PmJYflhQ8AD1UsEf38TPwshcpjB6M43ISM0wxalr6ZvGsgeXs guuZ7uTV8t0CYMh9I7opPi6n97wtuqpH9gODdwKv5Ks8h6Ib2f90irdLFKQ6w28sK5nN fp+RzBqN+PQjnKNR8CgT+iblHCo2cZuvbqc+dEZPBcJn5nEVBlqsUX0IMkgtZvN4c0IR fahuefU9MD3CWmFrkTqaDsKgSx9mNVIaW12hC32yE+XIyTMmnpWvjuFguggv3bjIBEDj QCPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:references :in-reply-to:subject:cc:to:from:date:content-transfer-encoding :mime-version:dkim-signature; bh=CdKxnlI5K6IMFNvaONNbeF+wjwNklNlZXIIkSM63c9g=; b=tU4ePThU9yEdLvU+6kTfvmfcCtthKBozgrVPTc5I5rtCJZEciVyyKX3Anv3m0szCWJ PKmVfrfqqWO0hboJU8ZF3OoLH+5UXBOjXtkhsA8lEq/xO0k3/7JfzGfjexoQ5zYWmeyb B3chdrwfhyzi1M520EBrbVSxpwa+mzdsVduZASJMSQfk/gT2XD8Q/AGqcY5/nfAaZSl8 +KeX/HLHAvQ/nWV5eGLp2zevVOqxoirCMauyrHvmz8onI5hwKk4LDulfJT23Wqvsp8Is wsR2cb26KLP0KCrleUbzWOVIbZhjrCYk6bNRADPSGDlwMr5L8CRv2FFwBWmxdxTi0gle HDvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="iueYwt/h"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 74si1942011otd.45.2020.02.28.11.00.13; Fri, 28 Feb 2020 11:00:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="iueYwt/h"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726063AbgB1TAK (ORCPT + 99 others); Fri, 28 Feb 2020 14:00:10 -0500 Received: from mail.kernel.org ([198.145.29.99]:45372 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725730AbgB1TAK (ORCPT ); Fri, 28 Feb 2020 14:00:10 -0500 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E1142246A0; Fri, 28 Feb 2020 19:00:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1582916409; bh=OTQM0R8+AqmsjTA1+kFoNN/miGIvet4k8Q05SzlET8A=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=iueYwt/hK/Lmh3fyKvxYlMPRoQLn7yUR7zrtRaDyRPCrdvN2e92LDS7pgV7JEillD dGUl0j/uLZ+pDUF6cJDmz0mrd6sUsemwKbebeVGOIYmouAemIiCIxwPN658aici6Mh ZboVjhnl13qexpaDHxU8aXHwF6i36NBSfDz/m7Oo= Received: from disco-boy.misterjones.org ([51.254.78.96] helo=www.loen.fr) by disco-boy.misterjones.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1j7krn-008pfQ-7f; Fri, 28 Feb 2020 19:00:07 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Fri, 28 Feb 2020 19:00:07 +0000 From: Marc Zyngier To: Zenghui Yu Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Lorenzo Pieralisi , Jason Cooper , Robert Richter , Thomas Gleixner , Eric Auger , James Morse , Julien Thierry , Suzuki K Poulose Subject: Re: [PATCH v4 09/20] irqchip/gic-v4.1: Plumb set_vcpu_affinity SGI callbacks In-Reply-To: <38b42ac1-5a5d-2f10-2cba-b50f37c7a965@huawei.com> References: <20200214145736.18550-1-maz@kernel.org> <20200214145736.18550-10-maz@kernel.org> <38b42ac1-5a5d-2f10-2cba-b50f37c7a965@huawei.com> Message-ID: X-Sender: maz@kernel.org User-Agent: Roundcube Webmail/1.3.10 X-SA-Exim-Connect-IP: 51.254.78.96 X-SA-Exim-Rcpt-To: yuzenghui@huawei.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, lorenzo.pieralisi@arm.com, jason@lakedaemon.net, rrichter@marvell.com, tglx@linutronix.de, eric.auger@redhat.com, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Zenghui, On 2020-02-20 03:37, Zenghui Yu wrote: > Hi Marc, > > On 2020/2/14 22:57, Marc Zyngier wrote: >> As for VLPIs, there is a number of configuration bits that cannot > > As for vSGIs, No, I think this is correct, if a bit ambiguous. What I'm trying to say here is that vSGIs have the same requirements as vLPIs, in the sense that some of the configuration aspects cannot be expressed in terms of the irqchip API. > >> be directly communicated through the normal irqchip API, and we >> have to use our good old friend set_vcpu_affinity. >> >> This is used to configure group and priority for a given vSGI. >> >> Signed-off-by: Marc Zyngier > > Reviewed-by: Zenghui Yu > >> --- >> drivers/irqchip/irq-gic-v3-its.c | 18 ++++++++++++++++++ >> include/linux/irqchip/arm-gic-v4.h | 5 +++++ >> 2 files changed, 23 insertions(+) >> >> diff --git a/drivers/irqchip/irq-gic-v3-its.c >> b/drivers/irqchip/irq-gic-v3-its.c >> index a9753435c4ff..a2e824eae43f 100644 >> --- a/drivers/irqchip/irq-gic-v3-its.c >> +++ b/drivers/irqchip/irq-gic-v3-its.c >> @@ -3969,6 +3969,23 @@ static int its_sgi_get_irqchip_state(struct >> irq_data *d, >> return 0; >> } >> +static int its_sgi_set_vcpu_affinity(struct irq_data *d, void >> *vcpu_info) >> +{ >> + struct its_vpe *vpe = irq_data_get_irq_chip_data(d); >> + struct its_cmd_info *info = vcpu_info; >> + >> + switch (info->cmd_type) { >> + case PROP_UPDATE_SGI: >> + vpe->sgi_config[d->hwirq].priority = info->priority; >> + vpe->sgi_config[d->hwirq].group = info->group; >> + its_configure_sgi(d, false); >> + return 0; >> + >> + default: >> + return -EINVAL; >> + } >> +} >> + >> static struct irq_chip its_sgi_irq_chip = { >> .name = "GICv4.1-sgi", >> .irq_mask = its_sgi_mask_irq, >> @@ -3976,6 +3993,7 @@ static struct irq_chip its_sgi_irq_chip = { >> .irq_set_affinity = its_sgi_set_affinity, >> .irq_set_irqchip_state = its_sgi_set_irqchip_state, >> .irq_get_irqchip_state = its_sgi_get_irqchip_state, >> + .irq_set_vcpu_affinity = its_sgi_set_vcpu_affinity, >> }; >> static int its_sgi_irq_domain_alloc(struct irq_domain *domain, >> diff --git a/include/linux/irqchip/arm-gic-v4.h >> b/include/linux/irqchip/arm-gic-v4.h >> index 30b4855bf766..a1a9d40266f5 100644 >> --- a/include/linux/irqchip/arm-gic-v4.h >> +++ b/include/linux/irqchip/arm-gic-v4.h >> @@ -98,6 +98,7 @@ enum its_vcpu_info_cmd_type { >> SCHEDULE_VPE, >> DESCHEDULE_VPE, >> INVALL_VPE, >> + PROP_UPDATE_SGI, > > Maybe better to use 'PROP_UPDATE_VSGI'? That's indeed better. Thanks, M. -- Jazz is not dead. It just smells funny...