LIBCFS_ALLOC

Julia Lawall
2015-06-28T06:52:46Z

It is not clear that all of the uses of LIBCFS_ALLOC really risk needing
vmalloc. For example:

lnet/klnds/socklnd/socklnd.c, function ksocknal_accept:

ksock_connreq_t *cr;
...
LIBCFS_ALLOC(cr, sizeof(*cr));

The definition of ksock_connreq_t is:

typedef struct ksock_connreq {
struct list_head ksncr_list; /* stash on ksnd_connd_connreqs */
lnet_ni_t *ksncr_ni; /* chosen NI */
struct socket *ksncr_sock; /* accepted socket */
} ksock_connreq_t;

This looks like a very small structure.

LIBCFS_ALLOC relies on a test on the size, which should be able to be
compiled away. libcfs_kvzalloc on the other hand relies on the failure of
kmalloc and so the test for that won't be compiled away.

Does it matter?

julia