From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755316AbbCXT3d (ORCPT ); Tue, 24 Mar 2015 15:29:33 -0400 Received: from mail-wi0-f177.google.com ([209.85.212.177]:37535 "EHLO mail-wi0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754788AbbCXT3b (ORCPT ); Tue, 24 Mar 2015 15:29:31 -0400 Date: Tue, 24 Mar 2015 20:29:26 +0100 From: Ingo Molnar To: Denys Vlasenko 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 Message-ID: <20150324192926.GA23521@gmail.com> References: <1426785469-15125-1-git-send-email-dvlasenk@redhat.com> <20150324184411.GB14760@gmail.com> <5511B1EA.1000100@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5511B1EA.1000100@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Denys Vlasenko wrote: > On 03/24/2015 07:44 PM, Ingo Molnar wrote: > > From 11e2761ba0969466299b7109eba749d2292e8796 Mon Sep 17 00:00:00 2001 > > From: Ingo Molnar > > Date: Tue, 24 Mar 2015 19:18:41 +0100 > > Subject: [PATCH] x86/asm/entry/64: Merge the field offset into the THREAD_INFO() macro > > > > 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? Thanks, Ingo