Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp4030975pxb; Tue, 2 Nov 2021 02:51:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzDxhEuG1St3qZScUP0UNDpVRbgtQ47PQiYygWlZGp8VmPg2wPaDivWBBKfvcO7TACWiEr2 X-Received: by 2002:a05:6e02:15c9:: with SMTP id q9mr24205202ilu.298.1635846716346; Tue, 02 Nov 2021 02:51:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635846716; cv=none; d=google.com; s=arc-20160816; b=GirM4SqTz5Ylp4LjfWEbF2avPEf1rI8RwAG2X0RX/UP+QOLdrDhuQXsfhj1hH9NxXi cjWeHf+xp2wsUeeEzE3sV/nyazvQsfrHfxK5Uf7vwuwriQCShsddRCmkSuzsDc3m5ued 5KaPJdeUlZSWP2znj9MYzknn3u7lH48OsluWkER8bq3tvKQuTr2Xqp6Hg8x7hnxHgavC MeyFc5mlSA/+kwLTSA7mr1dEyhiOA3QecPUVLXv2UXxeED92puYrUnXcr6/uNchY1pmr VWOlkCvsZht9P8EQ8J2F85c08WjwGiykeeGSMPBE2KMo5bfbekucFfExKFK7vx9zd2U9 XEvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=8BWnG30MtY0UUhkaiHYGZzY4ggSfKaanZFstlmENNNU=; b=KYh//uY7rUYZsT6Y+ZoNLcQ0WUBRsDwT4Qr3N/KBS7uo3nBXh6IRs0LTERcjqiTeir a2PNlCOJIjVHIAS2YIYPW/tpRFbIP2v2M89opnEKYNzm4TpMwWkKR8cPEOyMVisutemc Q7F2tr9RruvD/5YtlpFVYzzzoUGJ7H7yQiz0VNkzRK48Ia+PhGB2ymcoRL9IYmouxmi/ rCWoR7qJcLaP7z6DqErkb76VsylOjblGZYUxYXxQmoduxpxG3LM7WMDPYR1oBwUpK7AG L7iT8QiR3RP3An9KcZHCtP364hjgLgwXxrtqfbU9Sf4Xs8ZqEuaQjHoc2Fwr0blM/NPV UORg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@alien8.de header.s=dkim header.b=KO3JlJSf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=alien8.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s22si331401jaj.128.2021.11.02.02.51.44; Tue, 02 Nov 2021 02:51:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@alien8.de header.s=dkim header.b=KO3JlJSf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=alien8.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231918AbhKBJww (ORCPT + 99 others); Tue, 2 Nov 2021 05:52:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229505AbhKBJwY (ORCPT ); Tue, 2 Nov 2021 05:52:24 -0400 Received: from mail.skyhub.de (mail.skyhub.de [IPv6:2a01:4f8:190:11c2::b:1457]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0455FC0613B9 for ; Tue, 2 Nov 2021 02:49:49 -0700 (PDT) Received: from zn.tnic (p200300ec2f0f62005f026b777d4e743c.dip0.t-ipconnect.de [IPv6:2003:ec:2f0f:6200:5f02:6b77:7d4e:743c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 77C731EC0295; Tue, 2 Nov 2021 10:49:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim; t=1635846588; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references; bh=8BWnG30MtY0UUhkaiHYGZzY4ggSfKaanZFstlmENNNU=; b=KO3JlJSf1mqxUGS6Psivk0XaGEOGXs3CQtOFr13HLmeMhhveiegwU5heaUDIdA1cYGH4CN vfUkBS+PpGXP40Z027J8h3H/USqcIiuKjaj850QLvpXh+LYHn9g2ukhmnObmcpVXDNRcjO O315g6jdka9sV7Pwm+xuEBnMyYKtT3k= Date: Tue, 2 Nov 2021 10:49:44 +0100 From: Borislav Petkov To: Lai Jiangshan Cc: Lai Jiangshan , linux-kernel@vger.kernel.org, x86@kernel.org, Jan Beulich , Thomas Gleixner , Juergen Gross , Peter Anvin , xen-devel@lists.xenproject.org, Andy Lutomirski , Ingo Molnar , Dave Hansen , Boris Ostrovsky , Stefano Stabellini Subject: Re: [PATCH V4 04/50] x86/xen: Add xenpv_restore_regs_and_return_to_usermode() Message-ID: References: <20211026141420.17138-1-jiangshanlai@gmail.com> <20211026141420.17138-5-jiangshanlai@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 02, 2021 at 05:19:46PM +0800, Lai Jiangshan wrote: > It will add a 5-byte NOP at the beginning of the native > swapgs_restore_regs_and_return_to_usermode. So? > I avoided adding unneeded code in the native code even if it is NOPs > and avoided melting xenpv-one into the native one which will reduce > the code readability. How does this reduce code readability?! diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index e38a4cf795d9..bf1de54a1fca 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -567,6 +567,10 @@ __irqentry_text_end: SYM_CODE_START_LOCAL(common_interrupt_return) SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL) + + ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", \ + X86_FEATURE_XENPV + #ifdef CONFIG_DEBUG_ENTRY /* Assert that pt_regs indicates user mode. */ testb $3, CS(%rsp) > I will follow your preference since a 5-byte NOP is so negligible in the slow > path with an iret instruction. Yes, we do already gazillion things on those entry and exit paths. > Or other option that adds macros to wrap the ALTERNATIVE. > RESTORE_REGS_AND_RETURN_TO_USERMODE and > COND_RESTORE_REGS_AND_RETURN_TO_USERMODE (test %eax before jmp in native case) No, the main goal is to keep the asm code as readable and as simple as possible. If macros or whatever need to be added, there better be a good reason for them. Saving a NOP is not one of them. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette