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

Re: [PATCH 05/12] x86/io-apic: purge usage of logical mode


  • To: Roger Pau Monne <roger.pau@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Thu, 20 Nov 2025 13:18:37 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=w4YEl5xlgH+6YN2sXhH8yU5Z6joaCrykrDsffQPSWiI=; b=NttjVOknH8htTBuvypGsKXIaU062EWtWW9nbDWv3cWzUHH/1C5z5drlFs9lZelimfEcWpuC6cLTDT/cvpSCEm7QABZ76GdsHilfV0N9Rlvicv8Ct2AX8zcYj0cLTbnNEpcvbd1wxpLOLpdal8eFDhnIIOFeXSh+fbWSQmBY3bWMKyKSPpdNeRoWBTicYKf6GmyEpVgxsagFxZ02QnQZwsEhpzAyQG9Dx5c44OqtmzPXYpGiepbeTUMHrjzAj/DPXHgIKLKT+WZo1DlTFvL8SxZPbwZlWxCXhJly6VvwvGS3+x4Bz30pEBnFsu//dEVfNAv3rjw4bX5vxyi8aC8Z/SQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Nt5sydJTs4GIJPkRxcqyLKcnzizO2wvg/zW2n23kG0lzRpQSLm8jwv/XKQ3doWWb9CQUFCLZ9ByYf0vPZM5DDV9oFioEReTXyVm2fpQ2u0+p2O36Z2/CNIkwfd41wb05IDOJUizoQlTE/kC+1Uy7wSi7KJBX+snPIQN+OAL/Am+FKTlRu7uXOpxsC8Jwz0hM+95ULZwymu1hevpbzXXZNh2iyIkJ9FoqMfy3/pbwpA/bm2ZZjjKWpeo+NYkSeF2mrJNCvFAU0wpv3K7+/TZjvL1v+ltwJrHhpUFHwYci+ip75I1Qz+Hbv4Y6iT2zP5RRG3KxIJigzBq+DCSn9J1CBA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>
  • Delivery-date: Thu, 20 Nov 2025 13:18:53 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 20/11/2025 9:06 am, Roger Pau Monne wrote:
> The IO-APIC RTEs are unconditionally programmed with physical destination
> mode, and hence the field to set in the RTE is always physical_dest.
>
> Remove the mode parameter from SET_DEST() and take the opportunity to
> convert it into a function, there's no need for it to be a macro.
>
> This is a benign fix, because due to the endianness of x86 the start of the
> physical_dest and logical_dest fields on the RTE overlap.

RTEs do not have overlapping fields; it's Xen's abstraction of the
IO-APIC which is buggy.

For starters, Xen's IO_APIC_route_entry still only has a 4-bit
physical_dest field which hasn't been true since the Pentium 4 days. 
This might explain some of the interrupt bugs we see.

~Andrew



 


Rackspace

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