greybus: create a slab cache for simple messages
authorAlex Elder <elder@linaro.org>
Tue, 2 Dec 2014 14:30:35 +0000 (08:30 -0600)
committerGreg Kroah-Hartman <greg@kroah.com>
Tue, 2 Dec 2014 22:41:58 +0000 (14:41 -0800)
commit0cffcac3051fa1447d8a452ab5e0029bbe100777
treee244e368c9b708445a351b5433f74c64ea15baf7
parent835fb5e4985de46aafb7fbcf975663d375e7b4b4
greybus: create a slab cache for simple messages

A large number of request and response message types have no payload.
Such "simple" messages have a known, fixed maximum size, so we can
preallocate and use a pool (slab cache) of them.

Here are two benefits to doing this:
    - There can be (small) performance and memory utilization
      benefits to using a slab cache.
    - Error responses can be sent with no payload; the cache is
      likely to have a free entry to use for an error response even
      in a low memory situation.

The plan here is that an incoming request handler that has no
response payload to fill will not need to allocate a response
message.  If no message has been allocated when a response is to be
sent, one will be allocated from the cache by the core code.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/operation.c