[OpenAFS-devel] Progress on Linux in-kernel RxRPC library
Derrick J Brashear
shadow@dementia.org
Sun, 20 Mar 2005 20:08:41 -0500 (EST)
On Sun, 20 Mar 2005, Kyle Moffett wrote:
> You wouldn't need to pull Kerberos libraries into the kernel. If the AFS
> stuff needs to prod a user process to get new AFS keys from Kerberos keys,
> for whatever reason, just have userspace use a /proc/sys/afs/aklog file to
> tell it what program to call, then use call_usermode_helper() to trigger
> it and wait for it to do something useful or quit before waking up the
> original process from its interruptible sleep. You _still_ don't care
> what format the Kerberos stuff is in, you only care that _something_
> understands it enough to give you an OpenAFS token when you want one.
Well, that's not entirely true. The RPC layer needs to be able to choose a
single credential out of the cache it has.
>> ls and running pine result in different connections to the same
>> fileserver to use the same tokens to fetch the binaries themselves
>> and/or to bulkstat?
>
> They wouldn't. The RxRPC library would notice that you used the same
> credentials for both calls and automatically use the same connection.
> If it wants to do more simultaneous RxRPC calls than the protocol
> allows, it would create the extra connections for you when you need
> them, and close them when you're done.
Ok. Well, we have that now.
>> It might. But you know my concerns now. Actually, it may get to the
>> point where RxRPC is easy enough for OpenAFS to use that we do it.
>> It's just not (at least in my opinion, which you might think has more
>> weight than it actually does) a foregone conclusion thaat it's the
>> right answer.
>
> One of the other advantages of the Linux RxRPC layer, although this
> is not really noticeable for OpenAFS, is that it is shared code in
> the kernel repository, which means it's one more complex chunk of
> code that will be maintained easily by the Linux developers (Which
> are considerably more in number than OpenAFS developers) that you
> don't need to worry about on Linux. It would abstract you away from
But we need to worry about it on the N other platforms, and the amount of
complexity in it that's Linux specific is basically 0. False economy, at
least for now.
> much of the nitty-gritty of the Linux networking internals (at least
> for future versions)
This may be true.
> and provide a smaller ABI that is less likely
> to break on upgrades.
It's always inode/filesystem stuff which screws us, and that won't help at
all. I'd estimate 70% of the pain is there, and much of it could go away
if we used system inodes. If we could have something for free, that would
be my first wish.