From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 101231 invoked by alias); 11 Jan 2018 22:40:20 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 101200 invoked by uid 89); 11 Jan 2018 22:40:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-12.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:2385 X-HELO: mail-qt0-f196.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=pgi6KDrgIPM8uK0jrX2BnZdpqxx4s3TX4YWnRCc8kSM=; b=UVx563RdjuMiD76GIclM3lACOBa+2GB5UcNUF1ztKaYTkyzp+ea1IpQM60tZt6Q1kX WV6Ef7exEbQ0wlMOaucNqb6MT6wxABeDpJyzBe4Pr+FAQNwftqt142TBgYVJQd9kbajX VyD3FfXEu5ZM75QE9P2NCXHMrpNNTt0W19VkHuLWbD1BeFd3ucmFBLVuF5cVBnCnrrjT 4nKXNfX3dAhlNMB1whdmHp0bHm+uVXlMZq0yf9BVYNtzqRd964QMS7HeD2e+dv2H+Wsb Z6Uo67cTEXdqmrJYmEhsUNiV/hHnFY48OutaC8S2ak7D14NpzImbx1IK7ddOiyrLw5nf JYPw== X-Gm-Message-State: AKwxytdJ8pcevFsw+oHV3OZnvSUHqP8E6GX6ptVioh9PRshHtqAal8G+ /TGx3Zz12qeBfvO+0GjPN7X3zc8Kz9M= X-Google-Smtp-Source: ACJfBovuHjBJV9unfTe/b94VcdWlV4E6P0RZmWgQcXs33zpP2+88p2+PlB4Wz2F11MVj1B0+9dp1Bw== X-Received: by 10.200.45.215 with SMTP id q23mr34548108qta.85.1515710415441; Thu, 11 Jan 2018 14:40:15 -0800 (PST) Subject: Re: [PATCH] powerpc: Fix syscalls during early process initialization [BZ #22685] To: libc-alpha@sourceware.org References: <20180111192750.6256-1-tuliom@linux.vnet.ibm.com> <20180111213656.GA32709@aurel32.net> From: Adhemerval Zanella Message-ID: Date: Thu, 11 Jan 2018 22:40:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <20180111213656.GA32709@aurel32.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SW-Source: 2018-01/txt/msg00415.txt.bz2 On 11/01/2018 19:36, Aurelien Jarno wrote: > On 2018-01-11 17:27, Tulio Magno Quites Machado Filho wrote: >> The tunables framework needs to make syscall early during process >> initialization, before the TCB is available for consumption. This >> behavior conflicts with powerpc{|64|64le}'s lock elision code, that >> tries to abort transactions before a syscall when lock elision is >> available and enabled. >> >> This patch adds the macro EARLY_INTERNAL_SYSCALL in order to let early >> syscalls happen without depending on the TCB initialization for >> powerpc{|64|64le}. Other architectures are redirected to INTERNAL_SYSCALL. >> >> Tested on powerpc{|64|64le}, s390x and x86_64. I am not really understanding why exactly this is failing because the only object that currently uses __access_noerrno, dl-tunables.os, is built with -DMODULE_NAME=rtld and thus ABORT_TRANSACTION should be an empty statement. >> >> 2018-01-11 Tulio Magno Quites Machado Filho >> >> [BZ #22685] >> * sysdeps/unix/sysdep.h (__EARLY_INTERNAL_SYSCALL0, >> __EARLY_INTERNAL_SYSCALL1, __EARLY_INTERNAL_SYSCALL2, >> __EARLY_INTERNAL_SYSCALL3, __EARLY_INTERNAL_SYSCALL4, >> __EARLY_INTERNAL_SYSCALL5, __EARLY_INTERNAL_SYSCALL6, >> __EARLY_INTERNAL_SYSCALL7, EARLY_INTERNAL_SYSCALL_CALL): New macros >> (EARLY_INTERNAL_SYSCALL): New macro. Redirect to >> INTERNAL_SYSCALL by default. >> * sysdeps/unix/sysv/linux/not-errno.h (__access_noerrno): >> Replace INTERNAL_SYSCALL_CALL with EARLY_INTERNAL_SYSCALL_CALL. >> * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h >> (EARLY_INTERNAL_SYSCALL_NCS, EARLY_INTERNAL_SYSCALL): New macros. >> * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h >> (EARLY_INTERNAL_SYSCALL_NCS, EARLY_INTERNAL_SYSCALL): Likewise. >> >> Signed-off-by: Tulio Magno Quites Machado Filho >> --- >> sysdeps/unix/sysdep.h | 25 +++++++++++++++ >> sysdeps/unix/sysv/linux/not-errno.h | 4 +-- >> sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h | 36 +++++++++++++++++++++- >> sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h | 34 +++++++++++++++++++- >> 4 files changed, 95 insertions(+), 4 deletions(-) > > Thanks for the patch, I have just tested it and I confirm it fixes the > issue. > > Tested-by: Aurelien Jarno >