From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lan, Tianyu" Subject: Enable more than 255 VCPU support without irq remapping function in the guest Date: Wed, 27 Apr 2016 00:14:02 +0800 Message-ID: <571F93CA.40200@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit To: pbonzini@redhat.com, kvm@vger.kernel.org, yang.zhang.wz@gmail.com, tglx@linutronix.de, gleb@redhat.com, mst@redhat.com, jan.kiszka@siemens.com, x86@kernel.org Return-path: Received: from mga01.intel.com ([192.55.52.88]:47820 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751966AbcDZQON (ORCPT ); Tue, 26 Apr 2016 12:14:13 -0400 Sender: kvm-owner@vger.kernel.org List-ID: Hi All: Recently I am working on extending max vcpu to more than 256 on the both KVM/Xen. For some HPC cases, it needs many vcpus. The job requires to use X2APIC in the guest which supports 32-bit APIC id. Linux kernel requires irq remapping function during enabling X2APIC when max APIC id is more than 255(More detail please see try_to_enable_x2apic()). The irq remapping function helps to deliver irq to cpu 255~. IOAPIC just supports 8-bit target APIC id field and only can deliver irq to cpu 0~255. So far both KVM/Xen doesn't enable irq remapping function. If enable the function, it seems a huge job which need to rework IO-APIC, local APIC, MSI parts and add virtual VTD support in the KVM. Other quick way to enable more than 256 VCPUs is to eliminate the dependency between irq remapping and X2APIC in the guest linux kernel. So far I can boot the guest after removing the dependency. The side effect I thought is that irq only can deliver to 0~255 vcpus but 256 vcpus seem enough to balance irq requests in the guest. In the most cases, there are fewer devices in the guest. I wonder whether it's feasible. There maybe some other side effects I didn't think of. Very appreciate for your comments. Tianyu Lan Best regards.