Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp351878ybi; Tue, 16 Jul 2019 21:47:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqyVyuOkrBovT5H2Fui0GzaIs3sGeKi76sZMJBJ704ayN/oIVKJZFsDw1RURPZAHsUURRKnu X-Received: by 2002:a17:902:26c:: with SMTP id 99mr41996083plc.215.1563338856473; Tue, 16 Jul 2019 21:47:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563338856; cv=none; d=google.com; s=arc-20160816; b=PZmbphn9K011Oo4Q/jRtme6Oot9fu49mNrd65nHHgo2W78SoncuhX2APWVwGIPxJh4 0RiHE/pekTospbYDhI4uLBoe1zBtRjOK8jp0zqbvI1BA9252Iegu44bgmZhadwSqmqlM 2Ga4BhpJT5FR9LXKL/8AZ59SeBg+dGyRIxAErzCtTjFm/q5GtgI0helNG+uhSVcUHKxy JxvuGc3dq+5Q+6P+M2buL3hF32KpAz+rDmbu+iQWuUQYNnnnz0vlraKAuI6gcSAe7RIg 1EjuZzxm4PMk6Sw6gpb0D5rF7jfXvu7CgnOBvD2bEq/YExwfcEYcqvIjE+ZFO1AUhThf Gbbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=tUYwGzdlOKfYcoHthR+TQh+2uImfeZc13deKhFgGm/g=; b=lprT6CvNs4LVV+1JNreOkluUkMYJy6jyH5GwlGaabTbydVb7u1ZTdFxezSiHqbWK+d 0hRg8gLFF/Ps8PHrtDSeag1iqkTrP+ttKoP3+UjqdlOZ4txcha3eJIl4ufeGJeDFLwfT WkQG7JCYWRDZpB8NuEOxi1oZ7HPeBMAXZNVnE3ZqUB8Al2vVt+/Xl/YPB6OpZCe5b6x6 AmgdPGiVIr6iV4g2uggXS69EqXMmRJHG8ti4XaA8KBZTTA62fWRcDpl8P/aDGq665/58 hrp9ECb9hPKbEIVEIk3K3d+GLKsdemn5ifol5H28dttYBFiKE/qRT61VZKSMtn9M6eEs 8wrA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k63si21736461pgk.39.2019.07.16.21.47.18; Tue, 16 Jul 2019 21:47:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725936AbfGQEqR (ORCPT + 99 others); Wed, 17 Jul 2019 00:46:17 -0400 Received: from mx2.suse.de ([195.135.220.15]:49436 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725799AbfGQEqR (ORCPT ); Wed, 17 Jul 2019 00:46:17 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id DA049ACD8; Wed, 17 Jul 2019 04:46:15 +0000 (UTC) Subject: Re: [Xen-devel][PATCH v3] xen/pv: Fix a boot up hang revealed by int3 self test To: Zhenzhong Duan , linux-kernel@vger.kernel.org Cc: bp@alien8.de, Andrew Cooper , Peter Zijlstra , Andy Lutomirski , sstabellini@kernel.org, x86@kernel.org, tglx@linutronix.de, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, mingo@redhat.com References: <1563095732-16700-1-git-send-email-zhenzhong.duan@oracle.com> From: Juergen Gross Message-ID: <26a6f7a0-3c3a-c333-ff9f-6669fa1101e4@suse.com> Date: Wed, 17 Jul 2019 06:46:14 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 MIME-Version: 1.0 In-Reply-To: <1563095732-16700-1-git-send-email-zhenzhong.duan@oracle.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: de-DE Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14.07.19 11:15, Zhenzhong Duan wrote: > Commit 7457c0da024b ("x86/alternatives: Add int3_emulate_call() > selftest") is used to ensure there is a gap setup in int3 exception stack > which could be used for inserting call return address. > > This gap is missed in XEN PV int3 exception entry path, then below panic > triggered: > > [ 0.772876] general protection fault: 0000 [#1] SMP NOPTI > [ 0.772886] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.2.0+ #11 > [ 0.772893] RIP: e030:int3_magic+0x0/0x7 > [ 0.772905] RSP: 3507:ffffffff82203e98 EFLAGS: 00000246 > [ 0.773334] Call Trace: > [ 0.773334] alternative_instructions+0x3d/0x12e > [ 0.773334] check_bugs+0x7c9/0x887 > [ 0.773334] ? __get_locked_pte+0x178/0x1f0 > [ 0.773334] start_kernel+0x4ff/0x535 > [ 0.773334] ? set_init_arg+0x55/0x55 > [ 0.773334] xen_start_kernel+0x571/0x57a > > For 64bit PV guests, Xen's ABI enters the kernel with using SYSRET, with > %rcx/%r11 on the stack. To convert back to "normal" looking exceptions, > the xen thunks do 'xen_*: pop %rcx; pop %r11; jmp *'. > > E.g. Extracting 'xen_pv_trap xenint3' we have: > xen_xenint3: > pop %rcx; > pop %r11; > jmp xenint3 > > As xenint3 and int3 entry code are same except xenint3 doesn't generate > a gap, we can fix it by using int3 and drop useless xenint3. > > Signed-off-by: Zhenzhong Duan Reviewed-by: Juergen Gross Juergen