Messages in this thread | | | Date | Tue, 13 Aug 2002 04:12:37 -0600 | From | Erik Andersen <> | Subject | Re: klibc and logging |
| |
On Tue Aug 13, 2002 at 04:04:59AM -0400, Alexander Viro wrote: > We do have nfsroot support in the kernel. If we are going to move it > into the userland, we _must_ have the code for that. "Use glibc" is > laughable - try to link anything statically against that dungpile and > see what size you'll get.
Using the version of mount from util-linux-2.11n:
Staticly linked vs glibc 2.2.5: $ ls -l ./mount -rwxr-xr-x 1 andersen andersen 533912 Aug 13 03:41 ./mount*
Staticly linked vs uClibc 0.9.14: $ ls -l ./mount -rwxr-xr-x 1 andersen andersen 115844 Aug 13 03:40 ./mount*
Busybox mount w/NFS enabled, statically linked vs uClibc 0.9.14: $ ls -l ./busybox -rwxr-xr-x 1 andersen andersen 62628 Aug 13 03:46 ./busybox*
And uClibc's RPC code accounts for 33k of the 62k...
> Said that, we don't need anywhere near the full RPC support for nfsroot > and I'm not sure that we want it in libc even if it will be implemented. > "Use -lrpc" is perfectly OK. > > Stuff needed for nfsroot > a) is purely sequential (full-sync) > b) we need 2 or 3 RPC calls > c) we can open-code marshalling for these > IOW, the most complex part of that is handling of timeout and possibly - > logics with retransmit. Other than that it's filling an array, doing > sendmsg(), waiting for reply, and checking several words in received array.
I would love to see an example of how to do an NFS mount w/o resorting to the C library at all. Plainly, having generic RPC code in the C library sucks, even if you trim it down. Having the entire NFS mount process live in application space, and not in the C library, is clearly a win....
-Erik
-- Erik B. Andersen http://codepoet-consulting.com/ --This message was written using 73% post-consumer electrons-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |