Re: f_ops flag to speed up compatible ioctls in linux kernel

From: Roland Dreier
Date: Wed Sep 01 2004 - 16:36:54 EST


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.

Thanks,
Roland

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/