[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 24/27] hw/intc/ioapic: Remove IOAPICCommonState::version f
From: |
Zhao Liu |
Subject: |
Re: [PATCH v4 24/27] hw/intc/ioapic: Remove IOAPICCommonState::version field |
Date: |
Fri, 9 May 2025 18:32:05 +0800 |
On Thu, May 08, 2025 at 03:35:47PM +0200, Philippe Mathieu-Daudé wrote:
> Date: Thu, 8 May 2025 15:35:47 +0200
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v4 24/27] hw/intc/ioapic: Remove IOAPICCommonState::version
> field
> X-Mailer: git-send-email 2.47.1
>
> The IOAPICCommonState::version integer was only set
> in the hw_compat_2_7[] array, via the 'version=0x11'
> property. We removed all machines using that array,
> lets remove that property, simplify by only using the
> default version (defined as IOAPIC_VER_DEF).
>
> For the record, this field was introduced in commit
> 20fd4b7b6d9 ("x86: ioapic: add support for explicit EOI"):
>
> > Some old Linux kernels (upstream before v4.0), or any released RHEL
> > kernels has problem in sending APIC EOI when IR is enabled.
> > Meanwhile, many of them only support explicit EOI for IOAPIC, which
> > is only introduced in IOAPIC version 0x20. This patch provide a way
> > to boost QEMU IOAPIC to version 0x20, in order for QEMU to correctly
> > receive EOI messages.
> >
> > Without boosting IOAPIC version to 0x20, kernels before commit
> > d32932d ("x86/irq: Convert IOAPIC to use hierarchical irqdomain
> > interfaces") will have trouble enabling both IR and level-triggered
> > interrupt devices (like e1000).
> >
> > To upgrade IOAPIC to version 0x20, we need to specify:
> >
> > -global ioapic.version=0x20
> >
> > To be compatible with old systems, 0x11 will still be the default
> > IOAPIC version. Here 0x11 and 0x20 are the only versions to be
> > supported.
> >
> > One thing to mention: this patch only applies to emulated IOAPIC. It
> > does not affect kernel IOAPIC behavior.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
> ---
> hw/intc/ioapic_internal.h | 3 +--
> hw/intc/ioapic.c | 18 ++----------------
> hw/intc/ioapic_common.c | 2 +-
> 3 files changed, 4 insertions(+), 19 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
- Re: [PATCH v4 20/27] target/i386/cpu: Remove CPUX86State::enable_l3_cache field, (continued)
- [PATCH v4 21/27] hw/audio/pcspk: Remove PCSpkState::migrate field, Philippe Mathieu-Daudé, 2025/05/08
- [PATCH v4 22/27] hw/core/machine: Remove hw_compat_2_7[] array, Philippe Mathieu-Daudé, 2025/05/08
- [PATCH v4 23/27] hw/i386/intel_iommu: Remove IntelIOMMUState::buggy_eim field, Philippe Mathieu-Daudé, 2025/05/08
- [PATCH v4 24/27] hw/intc/ioapic: Remove IOAPICCommonState::version field, Philippe Mathieu-Daudé, 2025/05/08
- [PATCH v4 25/27] hw/virtio/virtio-pci: Remove VirtIOPCIProxy::ignore_backend_features field, Philippe Mathieu-Daudé, 2025/05/08
- [PATCH v4 26/27] hw/char/virtio-serial: Do not expose the 'emergency-write' property, Philippe Mathieu-Daudé, 2025/05/08
- [PATCH v4 27/27] hw/virtio/virtio-pci: Remove VIRTIO_PCI_FLAG_PAGE_PER_VQ definition, Philippe Mathieu-Daudé, 2025/05/08