From mboxrd@z Thu Jan 1 00:00:00 1970 From: "H. Peter Anvin" Subject: Re: [PATCH RFC 00/10] tools: Revamp the unaligned endian access functions Date: Wed, 11 Jun 2014 14:52:36 -0700 Message-ID: <5398CFA4.60202@zytor.com> References: <1402441994-16780-1-git-send-email-hpa@zytor.com> <20140611192111.GB16069@ravnborg.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20140611192111.GB16069@ravnborg.org> Sender: linux-kernel-owner@vger.kernel.org To: Sam Ravnborg Cc: linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-arch@vger.kernel.org, Andy Lutomirski , Andrew Morton , Ingo Molnar , Thomas Gleixner List-Id: linux-arch.vger.kernel.org On 06/11/2014 12:21 PM, Sam Ravnborg wrote: > On Tue, Jun 10, 2014 at 04:13:04PM -0700, H. Peter Anvin wrote: >> After a recent problem in the x86 tree, which seems to be the heaviest >> but not the only user of these functions, I went through and did a >> patchset to revamp the *user space* unaligned/endian accessor >> functions. As much as I think it is downright pathetic that this >> functionality still isn't part of the C standard, that is life and we >> have to deal with it. Furthermore, although glibc has a pretty nice >> set of functions for byte swapping in , taken from FreeBSD I >> believe, some older systems don't support them. >> >> This variant tries to fill in all the holes. It assumes that >> define the functions as macros if they exist, as I don't >> know any other way of probing for them without reaching for autoconf, >> but that should be valid enough of an assumption in this case. >> >> The hope is that this should give reasonable, if not optimal, code >> generation on most processors, and give a hook where arch maintainers >> can add their own changes if needed. > > This looks like a very complex solution to a simple problem. > We want a shared implementation of the *user space* > unaligned/endian accessor functions. > But do we really want *fast* versions for our use? > > This is not a new libc that should generate optimal code, > but only something were we want to provide e working > implmentation for use in our user-space tools. > > A much simpler approach without any fallback to arch specific > version etc. is everything we need. It doesn't matter so much for things that are just done for the kernel compile, no, but there are some tools that are built to be used as standalone things, and it could matter there. Please note that the code currently doesn't have any arch-specific bits at all... the code is somewhat complex in part because it is very generic and handles several levels of fallback. It *can* get arch-specific overrides if it matters, but the intent is that it shouldn't be necessary in the vast majority of the cases. -hpa From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from terminus.zytor.com ([198.137.202.10]:53095 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750958AbaFKVxJ (ORCPT ); Wed, 11 Jun 2014 17:53:09 -0400 Message-ID: <5398CFA4.60202@zytor.com> Date: Wed, 11 Jun 2014 14:52:36 -0700 From: "H. Peter Anvin" MIME-Version: 1.0 Subject: Re: [PATCH RFC 00/10] tools: Revamp the unaligned endian access functions References: <1402441994-16780-1-git-send-email-hpa@zytor.com> <20140611192111.GB16069@ravnborg.org> In-Reply-To: <20140611192111.GB16069@ravnborg.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: Sam Ravnborg Cc: linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-arch@vger.kernel.org, Andy Lutomirski , Andrew Morton , Ingo Molnar , Thomas Gleixner Message-ID: <20140611215236.h46hlrTjXGBCwuINt4bvLSwgdaq_e8UBmqZt6o3Tr-I@z> On 06/11/2014 12:21 PM, Sam Ravnborg wrote: > On Tue, Jun 10, 2014 at 04:13:04PM -0700, H. Peter Anvin wrote: >> After a recent problem in the x86 tree, which seems to be the heaviest >> but not the only user of these functions, I went through and did a >> patchset to revamp the *user space* unaligned/endian accessor >> functions. As much as I think it is downright pathetic that this >> functionality still isn't part of the C standard, that is life and we >> have to deal with it. Furthermore, although glibc has a pretty nice >> set of functions for byte swapping in , taken from FreeBSD I >> believe, some older systems don't support them. >> >> This variant tries to fill in all the holes. It assumes that >> define the functions as macros if they exist, as I don't >> know any other way of probing for them without reaching for autoconf, >> but that should be valid enough of an assumption in this case. >> >> The hope is that this should give reasonable, if not optimal, code >> generation on most processors, and give a hook where arch maintainers >> can add their own changes if needed. > > This looks like a very complex solution to a simple problem. > We want a shared implementation of the *user space* > unaligned/endian accessor functions. > But do we really want *fast* versions for our use? > > This is not a new libc that should generate optimal code, > but only something were we want to provide e working > implmentation for use in our user-space tools. > > A much simpler approach without any fallback to arch specific > version etc. is everything we need. It doesn't matter so much for things that are just done for the kernel compile, no, but there are some tools that are built to be used as standalone things, and it could matter there. Please note that the code currently doesn't have any arch-specific bits at all... the code is somewhat complex in part because it is very generic and handles several levels of fallback. It *can* get arch-specific overrides if it matters, but the intent is that it shouldn't be necessary in the vast majority of the cases. -hpa