From patchwork Wed Jun 14 18:08:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddhesh Poyarekar X-Patchwork-Id: 775909 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3wnvl86Ddrz9s5L for ; Thu, 15 Jun 2017 04:08:36 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="oGwni2k6"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; q=dns; s= default; b=TPVDwntN+gKWj+w4REvqkfFHWKmAUgLyahImg79/260e/uNf3jQwC 57Gj23m4P+AIOQNRUrNnSVG9NSqTjwrDHiJ4dOcbaW/1qEW6Xk56DoznnSeRQxQz j5Oghm8q/q/1QI3qLLoidMY3D72j7uhFrsYKtn9PqeuLwhKZLHlQN8= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; s=default; bh=gq52t5dGeDn3NSJbvjvOlfDo3pU=; b=oGwni2k6+1KI9MFkJobEyQSocHA6 clZ74KJ4W7jDvwxIjumk4DohaW1P44TpMlwFQQJcbR6c7b0NKg2s707N6GkVztw0 nqYxjRKl7TGom4mx1Mharb9PZ+khQd4+y3p2sMGySE2GoCK3GZIVBVAuG7/oQaT6 naF7UKg+UzBCqZk= Received: (qmail 127272 invoked by alias); 14 Jun 2017 18:08:23 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 127253 invoked by uid 89); 14 Jun 2017 18:08:22 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_NEUTRAL autolearn=ham version=3.3.2 spammy=advertised, 919, mutual X-HELO: homiemail-a94.g.dreamhost.com From: Siddhesh Poyarekar To: libc-alpha@sourceware.org Subject: [PATCH v2] Enable tunables by default Date: Wed, 14 Jun 2017 23:38:03 +0530 Message-Id: <1497463683-18434-1-git-send-email-siddhesh@sourceware.org> All of the major architectures are adopting tunables as a way to add tuning to the library, from hwcap_mask for aarch64 to HLE for s390 and ifunc and cache geometry for x86. Given this adoption and the fact that we don't want additional tuning knobs to be added outside of tunables, it makes sense to enable tunables by default using this trivial patch. Smoke tested on x86 to ensure that tunables code was built without specifying it as a configure flag. I have kept it as --enabled and not changed it to --disable since we want to still keep the option of different kinds of front-ends for tunables. * configure.ac(--enable-tunables): Enable by default. * configure: Regenerate. * NEWS: Mention change. * manual/install.texi (enable-tunables): Adjust documentation. * INSTALL: Regenerate. --- INSTALL | 18 ++++++++---------- NEWS | 3 +++ configure | 2 +- configure.ac | 2 +- manual/install.texi | 13 ++++++------- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/INSTALL b/INSTALL index 920c4df..a2f5a40 100644 --- a/INSTALL +++ b/INSTALL @@ -177,18 +177,16 @@ will be used, and CFLAGS sets optimization options for the compiler. '--enable-tunables' Tunables support allows additional library parameters to be - customized at runtime. This is an experimental feature and affects - startup time and is thus disabled by default. This option can take - the following values: - - 'no' - This is the default if the option is not passed to configure. - This disables tunables. + customized at runtime. This feature is enabled by default. This + option can take the following values: 'yes' - This is the default if the option is passed to configure. - This enables tunables and selects the default frontend - (currently 'valstring'). + This is the default if no option is passed to configure. This + enables tunables and selects the default frontend (currently + 'valstring'). + + 'no' + This option disables tunables. 'valstring' This enables tunables and selects the 'valstring' frontend for diff --git a/NEWS b/NEWS index 991ee63..9afd6b2 100644 --- a/NEWS +++ b/NEWS @@ -91,6 +91,9 @@ Version 2.26 as atomic variables to try to implement Dekker's mutual exclusion algorithm). +* The tunables feature is now enabled by default. This allows users to tweak + behavior of the GNU C Library using the GLIBC_TUNABLES environment variable. + Security related changes: * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, diff --git a/configure b/configure index 422482f..f9067e2 100755 --- a/configure +++ b/configure @@ -3724,7 +3724,7 @@ fi if test "${enable_tunables+set}" = set; then : enableval=$enable_tunables; have_tunables=$enableval else - have_tunables=no + have_tunables=yes fi diff --git a/configure.ac b/configure.ac index 7f43042..fa6a883 100644 --- a/configure.ac +++ b/configure.ac @@ -436,7 +436,7 @@ AC_ARG_ENABLE([tunables], [AS_HELP_STRING([--enable-tunables], [Enable tunables support. Known values are 'yes', 'no' and 'valstring'])], [have_tunables=$enableval], - [have_tunables=no]) + [have_tunables=yes]) AC_SUBST(have_tunables) if test "$have_tunables" = yes; then AC_DEFINE(HAVE_TUNABLES) diff --git a/manual/install.texi b/manual/install.texi index d39d2da..cbc9128 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -208,18 +208,17 @@ Use this option to disable the vector math library. @item --enable-tunables Tunables support allows additional library parameters to be customized at -runtime. This is an experimental feature and affects startup time and is thus -disabled by default. This option can take the following values: +runtime. This feature is enabled by default. This option can take the +following values: @table @code -@item no -This is the default if the option is not passed to configure. This disables -tunables. - @item yes -This is the default if the option is passed to configure. This enables tunables +This is the default if no option is passed to configure. This enables tunables and selects the default frontend (currently @samp{valstring}). +@item no +This option disables tunables. + @item valstring This enables tunables and selects the @samp{valstring} frontend for tunables. This frontend allows users to specify tunables as a colon-separated list in a