[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070224010824.5cf6c0ac@lxorguk.ukuu.org.uk>
Date: Sat, 24 Feb 2007 01:08:24 +0000
From: Alan <alan@...rguk.ukuu.org.uk>
To: "Michael K. Edwards" <medwards.linux@...il.com>
Cc: "Ingo Molnar" <mingo@...e.hu>,
"Evgeniy Polyakov" <johnpol@....mipt.ru>,
"Ulrich Drepper" <drepper@...hat.com>,
linux-kernel@...r.kernel.org,
"Linus Torvalds" <torvalds@...ux-foundation.org>,
"Arjan van de Ven" <arjan@...radead.org>,
"Christoph Hellwig" <hch@...radead.org>,
"Andrew Morton" <akpm@....com.au>,
"Zach Brown" <zach.brown@...cle.com>,
"David S. Miller" <davem@...emloft.net>,
"Suparna Bhattacharya" <suparna@...ibm.com>,
"Davide Libenzi" <davidel@...ilserver.org>,
"Jens Axboe" <jens.axboe@...cle.com>,
"Thomas Gleixner" <tglx@...utronix.de>
Subject: Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
> long my_threadlet_fn(void *data)
> {
> char *name = data;
> int fd;
>
> fd = open(name, O_RDONLY);
> if (fd < 0)
> goto out;
>
> fstat(fd, &stat);
> read(fd, buf, count)
> ...
>
> out:
> return threadlet_complete();
> }
>
> You're telling me that runs entirely in kernel space when open()
> blocks, and doesn't touch errno if fstat() fails? Now who hasn't read
> the code?
That example touches back into user space, but doesnt involve MMU changes
or cache flushes, or tlb flushes, or floating point.
errno is thread specific if you use it but errno is as I said before
entirely a C library detail that you don't have to suffer if you don't
want to. Avoiding that saves a segment register load - which isn't too
costly but isn't free.
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists