f_ops flag to speed up compatible ioctls in linux kernel
roland at topspin.com
Wed Sep 1 22:54:33 CEST 2004
Chris> You forgot a driver specific filesystem which exposes
Chris> requests in a file per request type style. Also, there's a
Chris> simple_transaction type of file which can allow you
Chris> send/recv data and should eliminate the need for tagging.
Chris> Example, look at nfsd fs (fs/nfsd/nfsctl.c).
Thanks for the pointer -- I had a look at this stuff. It seems that
using the simple_transaction stuff is fairly heavyweight -- if I
understand correctly, every operation requires userspace to do
open()-write()-read()-close(), and also uses a page of lowmem. I'm
not sure if this is the best fit for our requirements with InfiniBand
drivers: although the user->kernel calls are not in the data path,
there can still be quite a few of them.
On the other hand, ioctl() holds the BKL through the whole operation
so that's suboptimal as well.
More information about the discuss