> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- References:
- [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
- Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]