direct-io: separate fields only used in the submission path from struct dio
authorAndi Kleen <ak@linux.intel.com>
Tue, 2 Aug 2011 04:38:03 +0000 (21:38 -0700)
committerroot <root@serles.lst.de>
Fri, 28 Oct 2011 12:58:56 +0000 (14:58 +0200)
commiteb28be2b4c0a0608e54f0a8fc237372c674eb7d0
tree679aaf28fc8ed145aff89b6d4e4bb1c7ddee6318
parent62a3ddef6181d7d932c565d97552d2f7b9ab4d28
direct-io: separate fields only used in the submission path from struct dio

This large, but largely mechanic, patch moves all fields in struct dio
that are only used in the submission path into a separate on stack
data structure. This has the advantage that the memory is very likely
cache hot, which is not guaranteed for memory fresh out of kmalloc.

This also gives gcc more optimization potential because it can easier
determine that there are no external aliases for these variables.

The sdio initialization is a initialization now instead of memset.
This allows gcc to break sdio into individual fields and optimize
away unnecessary zeroing (after all the functions are inlined)

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
fs/direct-io.c