Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755525AbbDTV4y (ORCPT ); Mon, 20 Apr 2015 17:56:54 -0400 Received: from mail.skyhub.de ([78.46.96.112]:52574 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754457AbbDTV4v (ORCPT ); Mon, 20 Apr 2015 17:56:51 -0400 Date: Mon, 20 Apr 2015 23:56:45 +0200 From: Borislav Petkov To: Hagen Paul Pfeifer Cc: linux-kernel@vger.kernel.org, Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Peter Zijlstra Subject: Re: [PATCH RFC] x86: enforce inlining for atomics Message-ID: <20150420215645.GC10191@pd.tnic> References: <1429565231-4609-1-git-send-email-hagen@jauu.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1429565231-4609-1-git-send-email-hagen@jauu.net> 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 Content-Length: 1623 Lines: 54 On Mon, Apr 20, 2015 at 11:27:11PM +0200, Hagen Paul Pfeifer wrote: > During some code analysis I realized that atomic_add, atomic_sub and > friends are not necessarily inlined AND that each function is defined > multiple times: > > atomic_inc: 544 duplicates > atomic_dec: 215 duplicates > atomic_dec_and_test: 107 duplicates > atomic64_inc: 38 duplicates > [...] > > Each definition is exact equally, e.g.: > > ffffffff813171b8 : > 55 push %rbp > 48 89 e5 mov %rsp,%rbp > f0 01 3e lock add %edi,(%rsi) > 5d pop %rbp > c3 retq > > In turn each definition has one or more callsites (sure): > > ffffffff81317c78: e8 3b f5 ff ff callq ffffffff813171b8 > [...] > ffffffff8131a062: e8 51 d1 ff ff callq ffffffff813171b8 > [...] > ffffffff8131a190: e8 23 d0 ff ff callq ffffffff813171b8 > [...] Hmm, that must be config-specific as doing objdump -D vmlinux | grep -i "atomic_add" here gives me only "drm_atomic_add_affected_connectors" matches. It probably gets inlined here always... Other than that, this patch should actually even show some speedup as we're getting rid of the stack preparation and function call overhead. Have you done any benchmarks with it? Thanks. -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/