From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754435AbbCXTey (ORCPT ); Tue, 24 Mar 2015 15:34:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35171 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752789AbbCXTex (ORCPT ); Tue, 24 Mar 2015 15:34:53 -0400 Message-ID: <5511BC3E.6000707@redhat.com> Date: Tue, 24 Mar 2015 20:34:22 +0100 From: Denys Vlasenko User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Ingo Molnar CC: Andy Lutomirski , Linus Torvalds , Steven Rostedt , Borislav Petkov , "H. Peter Anvin" , Oleg Nesterov , Frederic Weisbecker , Alexei Starovoitov , Will Drewry , Kees Cook , x86@kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] x86/asm/entry/64: Merge the field offset into the THREAD_INFO() macro References: <1426785469-15125-1-git-send-email-dvlasenk@redhat.com> <20150324184411.GB14760@gmail.com> <5511B1EA.1000100@redhat.com> <20150324192926.GA23521@gmail.com> In-Reply-To: <20150324192926.GA23521@gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/24/2015 08:29 PM, Ingo Molnar wrote: >>> Before: >>> >>> TI_sysenter_return+THREAD_INFO(%rsp,3*8),%r10d >>> >>> After: >>> >>> movl THREAD_INFO(TI_sysenter_return, %rsp, 3*8), %r10d >>> >>> to turn it into a clear thread_info accessor. >> >> Good idea, I also wanted to do this. >> I propose a more C-like order of arguments instead. >> In C, field names are on the right: obj.field, ptr->field. >> >> THREAD_INFO(%rsp, 3*8, TI_field_name) >> >> would suggest to the reader a pseudo-C construct: >> >> THREAD_INFO(sp, offset)->field_name > > So I picked that order, because the C code we want to emulate here > visually is: > > thread_info->field_name > > and visually this order represents just that: > > THREAD_INFO(TI_field_name, ...) > > " ,%reg, offset" in that sense is just a 'detail' to how to access > thread_info. > > That order also resembles the assembly format more, which is usually > in field(reg) order, i.e.: > > THREAD_INFO(field, %reg, ...) > > Hm? Okay.