public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: libc-alpha@sourceware.org
Subject: Re: [PATCH 4/4] linux: Remove /proc/cpuinfo fallback on alpha and sparc
Date: Wed, 5 May 2021 13:53:11 -0300	[thread overview]
Message-ID: <6f2c137d-1976-f3eb-67fa-521c5babf794@linaro.org> (raw)
In-Reply-To: <20210329182520.323665-4-adhemerval.zanella@linaro.org>

Ping.

On 29/03/2021 15:25, Adhemerval Zanella wrote:
> There is no much gain in fallback to cpuinfo if sysfs is no present,
> usually on restricted environment neither will be present.  It also
> simplifies the code and make all architecture use the sched_getaffinity
> as the sysfs fallback.
> 
> Checked on sparc64-linux-gnu.
> ---
>  sysdeps/unix/sysv/linux/alpha/getsysstats.c | 38 ---------------------
>  sysdeps/unix/sysv/linux/getsysstats.c       | 22 ++----------
>  sysdeps/unix/sysv/linux/sparc/getsysstats.c | 38 ---------------------
>  3 files changed, 3 insertions(+), 95 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/getsysstats.c
>  delete mode 100644 sysdeps/unix/sysv/linux/sparc/getsysstats.c
> 
> diff --git a/sysdeps/unix/sysv/linux/alpha/getsysstats.c b/sysdeps/unix/sysv/linux/alpha/getsysstats.c
> deleted file mode 100644
> index 098575faef..0000000000
> --- a/sysdeps/unix/sysv/linux/alpha/getsysstats.c
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/* Determine various system internal values, Linux/Alpha version.
> -   Copyright (C) 1999-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -   Contributed by Andreas Schwab <schwab@suse.de>
> -
> -   The GNU C Library is free software; you can redistribute it and/or
> -   modify it under the terms of the GNU Lesser General Public
> -   License as published by the Free Software Foundation; either
> -   version 2.1 of the License, or (at your option) any later version.
> -
> -   The GNU C Library is distributed in the hope that it will be useful,
> -   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> -   Lesser General Public License for more details.
> -
> -   You should have received a copy of the GNU Lesser General Public
> -   License along with the GNU C Library.  If not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -
> -/* On the Alpha we can distinguish between the number of configured and
> -   active cpus.  */
> -#define GET_NPROCS_CONF_PARSER(FP, BUFFER, RESULT)			   \
> -  do									   \
> -    {									   \
> -      /* Find the line that contains the information about the number of   \
> -	 probed cpus.  We don't have to fear extremely long lines since	   \
> -	 the kernel will not generate them.  8192 bytes are really enough. \
> -	 If there is no "CPUs ..." line then we are on a UP system.  */	   \
> -      (RESULT) = 1;							   \
> -      while (__fgets_unlocked ((BUFFER), sizeof (BUFFER), (FP)) != NULL)   \
> -	if ((sscanf (buffer, "cpus detected : %d", &(RESULT)) == 1)	   \
> -	    || (sscanf (buffer, "CPUs probed %d", &(RESULT)) == 1))	   \
> -	  break;							   \
> -    }									   \
> -  while (0)
> -
> -#include <sysdeps/unix/sysv/linux/getsysstats.c>
> diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c
> index 5069951246..0791399b8f 100644
> --- a/sysdeps/unix/sysv/linux/getsysstats.c
> +++ b/sysdeps/unix/sysv/linux/getsysstats.c
> @@ -64,13 +64,13 @@ weak_alias (__get_nprocs, get_nprocs)
>  int
>  __get_nprocs_conf (void)
>  {
> -  int result = 1;
> -
>    /* Try to use the sysfs filesystem.  It has actual information about
>       online processors.  */
>    int fd = __open64_nocancel ("/sys/devices/system/cpu/possible", O_RDONLY);
>    if (fd != -1)
>      {
> +      int result = 0;
> +
>        /* The entry is in the form of '[cpuX]-[cpuY]'.  */
>        char buf[2 * INT_STRLEN_BOUND (unsigned int) + 1];
>  
> @@ -97,23 +97,7 @@ __get_nprocs_conf (void)
>        return result + 1;
>      }
>  
> -#ifdef GET_NPROCS_CONF_PARSER
> -  /* If we haven't found an appropriate entry return 1.  */
> -  FILE *fp = fopen ("/proc/cpuinfo", "rce");
> -  if (fp != NULL)
> -    {
> -      char buffer[8192];
> -
> -      /* No threads use this stream.  */
> -      __fsetlocking (fp, FSETLOCKING_BYCALLER);
> -      GET_NPROCS_CONF_PARSER (fp, buffer, result);
> -      fclose (fp);
> -    }
> -#else
> -  result = __get_nprocs ();
> -#endif
> -
> -  return result;
> +  return __get_nprocs ();
>  }
>  libc_hidden_def (__get_nprocs_conf)
>  weak_alias (__get_nprocs_conf, get_nprocs_conf)
> diff --git a/sysdeps/unix/sysv/linux/sparc/getsysstats.c b/sysdeps/unix/sysv/linux/sparc/getsysstats.c
> deleted file mode 100644
> index a8adba8321..0000000000
> --- a/sysdeps/unix/sysv/linux/sparc/getsysstats.c
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/* Determine various system internal values, Linux/Sparc version.
> -   Copyright (C) 1999-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -   Contributed by Andreas Schwab <schwab@suse.de> and
> -		  Jakub Jelinek <jj@ultra.linux.cz>
> -
> -   The GNU C Library is free software; you can redistribute it and/or
> -   modify it under the terms of the GNU Lesser General Public
> -   License as published by the Free Software Foundation; either
> -   version 2.1 of the License, or (at your option) any later version.
> -
> -   The GNU C Library is distributed in the hope that it will be useful,
> -   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> -   Lesser General Public License for more details.
> -
> -   You should have received a copy of the GNU Lesser General Public
> -   License along with the GNU C Library; if not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -
> -/* On the Sparc we can distinguish between the number of configured and
> -   active cpus.  */
> -#define GET_NPROCS_CONF_PARSER(FP, BUFFER, RESULT)			 \
> -  do									 \
> -    {									 \
> -      (RESULT) = 0;							 \
> -      /* Find the line that contains the information about the number of \
> -	 probed cpus.  We don't have to fear extremely long lines since	 \
> -	 the kernel will not generate them.  8192 bytes are really	 \
> -	 enough.  */							 \
> -      while (__fgets_unlocked ((BUFFER), sizeof (BUFFER), (FP)) != NULL) \
> -	if (sscanf (buffer, "ncpus probed : %d", &(RESULT)) == 1)	 \
> -	  break;							 \
> -    }									 \
> -  while (0)
> -
> -#include <sysdeps/unix/sysv/linux/getsysstats.c>
> 

  reply	other threads:[~2021-05-05 16:53 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-29 18:25 [PATCH 1/4] Remove architecture specific sched_cpucount optimizations Adhemerval Zanella
2021-03-29 18:25 ` [PATCH 2/4] linux: Use sched_getaffinity for __get_nprocs (BZ #27645) Adhemerval Zanella
2021-04-27 15:38   ` Florian Weimer
2021-03-29 18:25 ` [PATCH 3/4] linux: Use /sys/devices/system/cpu/possible on __get_nprocs_conf Adhemerval Zanella
2021-05-05 16:53   ` Adhemerval Zanella
2021-05-05 17:54   ` Florian Weimer
2021-05-05 18:06     ` Florian Weimer
2021-05-06 13:03       ` Adhemerval Zanella
2021-05-06 13:51         ` Florian Weimer
2021-05-06 20:07           ` Adhemerval Zanella
2021-05-07 11:07             ` Florian Weimer
2021-05-07 12:43               ` Adhemerval Zanella
2021-05-06 13:17     ` Adhemerval Zanella
2021-03-29 18:25 ` [PATCH 4/4] linux: Remove /proc/cpuinfo fallback on alpha and sparc Adhemerval Zanella
2021-05-05 16:53   ` Adhemerval Zanella [this message]
2021-05-05 16:52 ` [PATCH 1/4] Remove architecture specific sched_cpucount optimizations Adhemerval Zanella
2021-05-05 17:28 ` Florian Weimer
2021-05-05 18:25   ` Paul Eggert
2021-05-05 19:52     ` Noah Goldstein
2021-05-06 12:22       ` Adhemerval Zanella
2021-05-06 18:34         ` Noah Goldstein
2021-05-06 13:33     ` Adhemerval Zanella
2021-05-06 13:43       ` Florian Weimer
2021-05-06 16:16         ` Adhemerval Zanella
2021-05-06 16:42           ` Florian Weimer
2021-05-06 16:54             ` Adhemerval Zanella
2021-05-06 17:12       ` Paul Eggert
2021-05-06 17:51         ` Adhemerval Zanella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6f2c137d-1976-f3eb-67fa-521c5babf794@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).