All of lore.kernel.org
 help / color / mirror / Atom feed
From: Padraig Brady <padraig@antefacto.com>
To: Andi Kleen <ak@suse.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: horrible disk thorughput on itanium
Date: Fri, 07 Dec 2001 14:20:43 +0000	[thread overview]
Message-ID: <3C10D03B.1050405@antefacto.com> (raw)
In-Reply-To: <p73r8q86lpn.fsf@amdsim2.suse.de.suse.lists.linux.kernel> <Pine.LNX.4.33.0112070710120.747-100000@mikeg.weiden.de.suse.lists.linux.kernel> <9upmqm$7p4$1@penguin.transmeta.com.suse.lists.linux.kernel> <p73n10v6spi.fsf@amdsim2.suse.de>

Andi Kleen wrote:

> torvalds@transmeta.com (Linus Torvalds) writes:
> 
>>"putc()" is a standard function.  If it sucks, let's get it fixed.  And
>>instead of changing bonnie, how about pinging the _real_ people who
>>write sucky code?
>>
> 
> It is easy to fix. Just do #define putc putc_unlocked
> There is just a slight problem: it'll fail if your application is threaded
> and wants to use the same FILE from multiple threads.
> 
> It is a common problem on all OS that eventually got threadsafe stdio. 
> I bet putc sucks on Solaris too.
> 
> -Andi


Interesting thread on this:
http://sources.redhat.com/ml/bug-glibc/2001-11/msg00079.html

for glibc 2.2.4 with the following program with input file
of 354371 lines of text(/usr/share/doc/*), where the average line
length was 37 chars.

getc/putc
real 
2.181s
user 
2.150s
sys 
0.030s
getc_unlocked/putc_unlocked
real 
0.326s
user 
0.280s
sys 
0.040s

I.E. 669% faster!

Padraig.

-------------------
#include <stdio.h>

#ifndef  _REENTRANT
#    undef getc
#    define getc(x)   getc_unlocked(x)
#    undef putc
#    define putc(x,y) putc_unlocked(x,y)
#endif //_REENTRANT

void main(void)
{
     int c;
     while((c=getc(stdin))!=EOF) putc(c,stdout);
}



  reply	other threads:[~2001-12-07 14:21 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <p73r8q86lpn.fsf@amdsim2.suse.de.suse.lists.linux.kernel>
     [not found] ` <Pine.LNX.4.33.0112070710120.747-100000@mikeg.weiden.de.suse.lists.linux.kernel>
     [not found]   ` <9upmqm$7p4$1@penguin.transmeta.com.suse.lists.linux.kernel>
2001-12-07 13:54     ` horrible disk thorughput on itanium Andi Kleen
2001-12-07 14:20       ` Padraig Brady [this message]
2001-12-07 16:14       ` Richard Gooch
2001-12-07 17:18         ` Robert Love
2001-12-07 17:40           ` Richard Gooch
2001-12-07 17:48             ` Robert Love
2001-12-07 17:45       ` Linus Torvalds
2001-12-07 17:58         ` Andi Kleen
2001-12-07 18:14           ` Michael Poole
2001-12-07 18:35             ` Padraig Brady
2001-12-07 21:22               ` Michael Poole
2001-12-07 21:37                 ` Padraig Brady
2001-12-07 22:26                   ` Michael Poole
2001-12-07 18:15           ` Linus Torvalds
2001-12-07 18:41             ` Padraig Brady
2001-12-07 18:33           ` Padraig Brady
2001-12-07 20:44         ` Greg Hennessy
2001-12-07 21:37           ` Marco Colombo
2001-12-07 20:42       ` David S. Miller
     [not found]         ` <3C112DE4.60206@antefacto.com>
     [not found]           ` <20011207.130316.39156883.davem@redhat.com>
2001-12-09  1:19             ` [OT] fputc vs putc " Tom Vier
2001-12-09  1:33               ` Eric W. Biederman
2001-12-09  9:27                 ` H. Peter Anvin
2001-12-09 19:14                   ` Tom Vier
2001-12-09 22:15                     ` H. Peter Anvin
2001-12-07  6:42 Dan Kegel
     [not found] <20011206110713.A8404@cox.rr.com.suse.lists.linux.kernel>
     [not found] ` <3C0FD955.4510B738@zip.com.au.suse.lists.linux.kernel>
2001-12-06 22:13   ` Andi Kleen
2001-12-07  6:11     ` Mike Galbraith
2001-12-07  6:15       ` Linus Torvalds
2001-12-07 12:32         ` Greg Hennessy
2001-12-07 17:57           ` Marco Colombo
  -- strict thread matches above, loose matches on Subject: below --
2001-12-06 16:07 Greg Hennessy
2001-12-06 16:17 ` Arjan van de Ven
2001-12-06 20:47 ` Andrew Morton
2001-12-09 23:13 ` Kurt Garloff

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=3C10D03B.1050405@antefacto.com \
    --to=padraig@antefacto.com \
    --cc=ak@suse.de \
    --cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.