[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] x86/HVM: adjust pIRQ calculation in hvm_inject_msi()


  • To: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Mon, 17 Jul 2023 13:49:43 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G2hGiGSrw+OF/jiEOTj/fWw3gTtw4oQnJMlMtS2g2eo=; b=jnfZl6zcAsEuVaoP/IvEMGjQgdQwrexHulLCdRCEYshAziY1xx1eiORVwK5rbHwmuA7mIIFt6ccNidD0Vz/VNBtg4zjsjVihn2HA2M5ADvbLbwaGosPoOG5M+KKjEUlOqv8mC7LEu3XwH5PCTg3dPftdrYbdnTDsTEJps1knNkOV5ahU47oBK5tc047NS2+dYUqyUIjgkh7SrW30dGVuGDtyDItktCz5JeEMPE7eL41lP4y0VLhhUUyLZ+TCmBKSHiJF6boNDFSTQ/OZln1mN1fAOlTK/G2K8dC2xTMpHfnRgG9u8yq506C7vhMVjTDm97/sVIXHIEItH5kKVvBjNg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Iyl1Oo8DB/kCRdv0R84EN5n7GDu0dtuzo7OtTj4H5XHw5wEcYGsCULLStxBcM4mlP4mipYatrm6cATI7eBxbPubQcQ6vHLzGTjYm8nUkOwcOibCGcaft8ELtaJV836IjlUpsP/bYkW9Xqb+mtV3pnYI8ViCnBV9A/XZJYN4fkBPT4QrpK6PEa/8rEsKlEvARQJ7A5wTXKkY6/gK2soasOGFIk4uO5dlcgJfv59l/j/UQx7fDmmku+1+vmc0DTet3ZiHlOHBtfuEffENeX/i3OPaG5s0tnET24XaHJJ7TCNIqPZaf+KhPJZYYLNGNG7vK0xIqNzm0I+Y5eja7PgggMA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Simone Ballarin <simone.ballarin@xxxxxxxxxxx>, Gianluca Luparini <gianluca.luparini@xxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • Delivery-date: Mon, 17 Jul 2023 11:50:02 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 17.07.2023 12:51, Roger Pau Monné wrote:
> On Mon, Jul 17, 2023 at 11:31:57AM +0200, Jan Beulich wrote:
>> While the referenced commit came without any update to the public header
>> (which doesn't clarify how the upper address bits are used), the
>> intention looks to have been that bits 12..19 and 40..63 form the pIRQ.
>> Negative values simply make no sense, and pirq_info() also generally
>> wants invoking with an unsigned (and not just positive) value.
>>
>> Since the line was pointed out by Eclair, address Misra rule 7.2 at the
>> same time, by adding the missing U suffix.
>>
>> Fixes: 88fccdd11ca0 ("xen: event channel remapping for emulated MSIs")
>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>

Thanks.

> I have a question below, but not related to the change here.
> 
>>
>> --- a/xen/arch/x86/hvm/irq.c
>> +++ b/xen/arch/x86/hvm/irq.c
>> @@ -383,7 +383,7 @@ int hvm_inject_msi(struct domain *d, uin
>>  
>>      if ( !vector )
>>      {
>> -        int pirq = ((addr >> 32) & 0xffffff00) | dest;
>> +        unsigned int pirq = ((addr >> 32) & 0xffffff00U) | dest;
>>  
>>          if ( pirq > 0 )
> 
> I do wonder whether this check is also accurate, as pIRQ 0 could be a
> valid value.  Should it instead use INVALID_PIRQ?

I think 0 is okay to use here, as the low IRQs (at least the 16 ISA
ones) are all 1:1 mapped to their "machine" (i.e. Xen's) IRQ numbers.
And IRQ0 is always the timer, never given to guests (not even to
Dom0).

If we wanted to use INVALID_PIRQ here, we'd first need to make this
part of the public interface.

> Since there's no specification or documentation how this is supposed
> to work it's hard to tell.

Indeed.

Jan



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.