Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp365631ybi; Tue, 16 Jul 2019 22:01:43 -0700 (PDT) X-Google-Smtp-Source: APXvYqyCsYw97eRoi5z0SfI2xSMgg6OXjmb6SY7LI73g0D+cY3LpmpT4mlnCywV2MMnP5PzmlCro X-Received: by 2002:a65:6904:: with SMTP id s4mr34317700pgq.33.1563339703610; Tue, 16 Jul 2019 22:01:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563339703; cv=none; d=google.com; s=arc-20160816; b=t9pznxpvsEBGgt9nRQkyL1QR9WSf6ooz5gl5Y76x/aQn/JOWHfYTVOkSqzF8OL10ci ajrge2rhnfRHxBF/vbyI6D+fBAFRFYHcyl4VBOkOzeiSM76N9Q7j09OTMD2ku3kf/RiK L9Oc8smReCKhHHpsK69iFLGiTfXgLdF60l2kAYnyER75hLHoeI5/OcUalUhsVS3t3s0h ZX7lZa95PrpiswCS6kgZuZZlCz/e8FJzA1l0/1+wVyxj4ao8Mqk6o6F4NQCNmSOaJ08g K587/E8/sv0aWiKajE0jqHSMX5KFuQWPJ5xvWnXblp1TQul6eHfMPuGLPnxzYDaCpnF9 /GYA== 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=sMPflg9pV8x19XfnkOiYExGpVeYiKkklLeQIHd61Phs=; b=qW3HsV+GhENUOcpqddQCtk10pBFxAMeBSb5NYBdNWku+H+y8DqubVy3xyUkVcYYhp6 3U4qfFxdCTQgkItW+ld1+KAAvWSpCymKYhgSt3x4XZnmmyUq5tJIuozZvHyexpq35qh4 G6/jK4Xlkj+n7+D0Baa9KhYj4m7XaGkz+J68BLcVYGLt3QOnutW8KPvYPQtbGQ68rYNO HQAZgVmJ227WPxrFuPO2kEDxwcpp+InD+uJrCeJRVP6QIzJN2AL74p2mrEcON3HMbrTl D18+OTPDlA3f3kg2C4B+weuPS1h0EBQjwTJKhcvjYaYyGdO3p1VwB5AOIgxiVh3LWYli qKHw== 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 w3si20531015plb.35.2019.07.16.22.01.27; Tue, 16 Jul 2019 22:01:43 -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 S1726770AbfGQE7R (ORCPT + 99 others); Wed, 17 Jul 2019 00:59:17 -0400 Received: from mx2.suse.de ([195.135.220.15]:51812 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725892AbfGQE7R (ORCPT ); Wed, 17 Jul 2019 00:59: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 3165DAE86; Wed, 17 Jul 2019 04:59:16 +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: Date: Wed, 17 Jul 2019 06:59:15 +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 Pushed to xen/tip.git for-linus-5.3a Juergen