From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752727AbcGAJtL (ORCPT ); Fri, 1 Jul 2016 05:49:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45294 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752164AbcGAJtG (ORCPT ); Fri, 1 Jul 2016 05:49:06 -0400 From: Vitaly Kuznetsov To: David Vrabel Cc: , , , Stefano Stabellini , "Boris Ostrovsky" , Juergen Gross , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Julien Grall Subject: Re: [PATCH linux 0/8] xen: pvhvm: support bootup on secondary vCPUs References: <1467132449-1030-1-git-send-email-vkuznets@redhat.com> <5772B4C2.4010906@citrix.com> <871t3gwe0o.fsf@vitty.brq.redhat.com> <5773C0DF.3090905@citrix.com> Date: Fri, 01 Jul 2016 11:24:21 +0200 In-Reply-To: <5773C0DF.3090905@citrix.com> (David Vrabel's message of "Wed, 29 Jun 2016 13:36:47 +0100") Message-ID: <877fd5u2wq.fsf@vitty.brq.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 01 Jul 2016 09:24:25 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org David Vrabel writes: > On 29/06/16 10:16, Vitaly Kuznetsov wrote: >> David Vrabel writes: >> >>> On 28/06/16 17:47, Vitaly Kuznetsov wrote: >>>> It may happen that Xen's and Linux's ideas of vCPU id diverge. In >>>> particular, when we crash on a secondary vCPU we may want to do kdump >>>> and unlike plain kexec where we do migrate_to_reboot_cpu() we try booting >>>> on the vCPU which crashed. This doesn't work very well for PVHVM guests as >>>> we have a number of hypercalls where we pass vCPU id as a parameter. These >>>> hypercalls either fail or do something unexpected. To solve the issue we >>>> need to have a mapping between Linux's and Xen's vCPU ids. >>> >>> Could the soft-reboot hypercall (optionally) return on vcpu 0? >>> >> >> In theory, yes, I think we can re-arrange vCPUs inside the hypervisor so >> Linux will get them in the natural order after soft reset. > > The series is straight forwards and the concept of the guest having to > map its idea of CPU to VCPU is fine, so unless you think a hypervisor > based solution is better we can take this series once it's fixed up. I'm afraid that kdump is not the only case where the mapping may come handy. Linux CPU ids are not guaranteed to always match the order of CPUs in MADT, e.g. if we fail to add a CPU ids for the rest will get shifted. This could easily be emulated by adding 'disable_cpu_apicid=' kernel parameter. I didn't try but I'm pretty sure that disabling any CPU will break guest bootup. That said, I think maintaining the Xen-Linux vCPU id mapping is preferred till we introduce an option to address vCPUs in hypercalls by some other ids (vLAPIC id, for example). -- Vitaly