diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2010-02-26 16:37:37 -0500 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-02-26 16:37:31 -0500 |
commit | 432ac5e04b931df8376e0858d4bf0fd41436a271 (patch) | |
tree | f8901ab07b0076f6614887fb8fe63e8b7c2cae45 /arch/s390 | |
parent | d307297f73077b4dc8110eb998108ffc467e8e6c (diff) |
[S390] qdio: optimize cache line usage of struct qdio_irq
Remove a memset hack that relied on the internal layout of the
qdio_irq struct and move the per device statistics data into an own
cache line to avoid cache line bashing between the inbound and the
outbound queue tasklets. Also reduce the number of allocated queues
from 32 to 4 which is the current maximum. That saves a cache line
in struct qdio_irq.
Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/include/asm/qdio.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h index 79d849f014f0..c666bfe5e984 100644 --- a/arch/s390/include/asm/qdio.h +++ b/arch/s390/include/asm/qdio.h | |||
@@ -13,7 +13,8 @@ | |||
13 | #include <asm/cio.h> | 13 | #include <asm/cio.h> |
14 | #include <asm/ccwdev.h> | 14 | #include <asm/ccwdev.h> |
15 | 15 | ||
16 | #define QDIO_MAX_QUEUES_PER_IRQ 32 | 16 | /* only use 4 queues to save some cachelines */ |
17 | #define QDIO_MAX_QUEUES_PER_IRQ 4 | ||
17 | #define QDIO_MAX_BUFFERS_PER_Q 128 | 18 | #define QDIO_MAX_BUFFERS_PER_Q 128 |
18 | #define QDIO_MAX_BUFFERS_MASK (QDIO_MAX_BUFFERS_PER_Q - 1) | 19 | #define QDIO_MAX_BUFFERS_MASK (QDIO_MAX_BUFFERS_PER_Q - 1) |
19 | #define QDIO_MAX_ELEMENTS_PER_BUFFER 16 | 20 | #define QDIO_MAX_ELEMENTS_PER_BUFFER 16 |