Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp4577536ybb; Tue, 14 Apr 2020 09:58:28 -0700 (PDT) X-Google-Smtp-Source: APiQypJNG/sy7wxIv7+o6PHR0b1Hi4wSgw/UjZCucMVC/8PEa8X6Jz7pBLuIi2BaQLLBi0TgfcOv X-Received: by 2002:aa7:dd0f:: with SMTP id i15mr5783369edv.245.1586883508640; Tue, 14 Apr 2020 09:58:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586883508; cv=none; d=google.com; s=arc-20160816; b=C0NfKuvz2Zr+tsfQDObeFyfXwzpEf+Wr2FWqrioV1k4xXFR+tFCwnVXp0qfWKF793Y LuY+0IsM7S/nKicHkYyVt2u6rlxApqkOxhHkJLQz4Z8yAXoGwG8lGMrIeRMi3AttFZej KjC9GhQINfY/x/euG/2u2iMTM16ZGJ7ChWLA+VHTsgutOtjGyFerNZYOjkXFdE2/7Iqg IWnBzCardU29VXoqMjJUyo655Tru9tIuzj9+kj7CGJuaEzsdHa8A1lMhPOy+jKVWVcUD i8N8dg5LwJn9iv9BldlHHJ8+kDgpv+4aYluTmRdJxL0FGR1NL+P+D4SWAx6+ZuQuXTOK lLbA== 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:dkim-signature; bh=+yPSkB6MIowJQszHtIzPH9Ov/fiqm3RcXe6FOdMkD8Q=; b=lC3WAV2T+4Aq1AgsEJy4Oov4BHFyfrMzUQNXPttC5swqD15EZvmvbTaGQ7/r/l2LMw 8qlGIcG4rzHnpRVDbpk8Pjjb/LFLQmrF5KZDWqBcm4eCHPZGTmSvovpCvGUF2+mF2U8j jNiTROXmrl0jGducVcsG4pjJoge8Um6pO4hZ0gsefXkqXPXZvQMQuBp6yhrK4NNERLSF Yoa0wY5ISQKUxhpy4BjL1cvUduZ1O/ttRTnaH+9vTYuJ3uhVdY74uEaNgSk+48v7zKCf tGjDbMqEkosV59p4WkLzpcbYaZkXShdpM5Fd7y+iMwHzn893BSqZc+IBs0f+6tmzKNK7 vz7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=odqJ3CG+; spf=pass (google.com: best guess record for 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=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bf6si5321716edb.316.2020.04.14.09.58.04; Tue, 14 Apr 2020 09:58:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for 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=@oracle.com header.s=corp-2020-01-29 header.b=odqJ3CG+; spf=pass (google.com: best guess record for 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=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391818AbgDNQgI (ORCPT + 99 others); Tue, 14 Apr 2020 12:36:08 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:46846 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391804AbgDNQgA (ORCPT ); Tue, 14 Apr 2020 12:36:00 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 03EGN4uj068794; Tue, 14 Apr 2020 16:35:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=+yPSkB6MIowJQszHtIzPH9Ov/fiqm3RcXe6FOdMkD8Q=; b=odqJ3CG+AUp9pXI/W0yO++ae/10q/N6Z7mt6A75QMaW+bskDJpSC8wZl9FWJV1sjbOUD 7pUd7PzzqK48OYdpH/7hC21QxgaC5sgUDkynNzZwNBSOz+Ni2NY03pCooKiFdbhnzBhU PeLp2iGy1FFfZE7gA3IPGaTt0/3ruOJxAPAqWOybdwJfKs/jJSAr3l8JWgqm4e+qGOcl /eJBuW0FXnr40BS53DxDxBIEknOxP7E6k6/EAqDNFxupPdHa0vbGfE6Hyd88e/zjkP0g +rUCoO85e3Nv4aOevHYOUDJ4HwV3BsexiP1kml7W3z5vzMnsjv27NmINNNqky9maINPn Sg== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 30b5ar5wjv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Apr 2020 16:35:46 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 03EGR8Ru161303; Tue, 14 Apr 2020 16:35:45 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3030.oracle.com with ESMTP id 30ctaamadh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Apr 2020 16:35:45 +0000 Received: from abhmp0016.oracle.com (abhmp0016.oracle.com [141.146.116.22]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 03EGZiZu031320; Tue, 14 Apr 2020 16:35:44 GMT Received: from linux-1.home (/92.157.90.160) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 14 Apr 2020 09:35:44 -0700 Subject: Re: [PATCH V3 5/9] objtool: Add return address unwind hints To: Peter Zijlstra Cc: x86@kernel.org, linux-kernel@vger.kernel.org, jpoimboe@redhat.com, jthierry@redhat.com, tglx@linutronix.de References: <20200414103618.12657-1-alexandre.chartre@oracle.com> <20200414103618.12657-6-alexandre.chartre@oracle.com> <20200414161636.GP20713@hirez.programming.kicks-ass.net> From: Alexandre Chartre Message-ID: <546b2d81-39ca-00e1-4df2-d4eaa18496a4@oracle.com> Date: Tue, 14 Apr 2020 18:40:12 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <20200414161636.GP20713@hirez.programming.kicks-ass.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9591 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004140129 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9591 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 phishscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004140128 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/14/20 6:16 PM, Peter Zijlstra wrote: > On Tue, Apr 14, 2020 at 12:36:14PM +0200, Alexandre Chartre wrote: >> Add the UNWIND_HINT_RADDR_DELETE and UNWIND_HINT_RADDR_ALTER unwind >> hint macros to flag instructions which remove or modify return >> addresses. > > I'm confused by this thing; why? AFAICT the rest of the patches are > actually simpler without this one. > This is required to indicate to objtool that assembly instructions are changing return addresses. For example, in patch 8: For retpoline: @@ -88,6 +96,7 @@ lfence jmp .Lspec_trap_\@ .Ldo_rop_\@: + UNWIND_HINT_RADDR_ALTER mov \reg, (%_ASM_SP) ret .endm The unwind hint indicates that the return address has been altered, so the code won't return to the return address which was on the stack. Also for RSB stuffing, this is used to indicated that the stack adjustment instruction (add $(BITS_PER_LONG/8) * 2, sp) is actually removing the last two return addresses. alex.