From: Arnaldo Carvalho de Melo <acme@mandriva.com>
To: "James E.J. Bottomley" <James.Bottomley@SteelEye.com>
Cc: Andrew Morton <akpm@osdl.org>,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH][SCSI]: Save some bytes in struct scsi_target
Date: Tue, 12 Dec 2006 01:17:18 -0200 [thread overview]
Message-ID: <20061212031718.GC6218@mandriva.com> (raw)
Before:
[acme@newtoy kpahole-2.6]$ pahole --cacheline 32 /tmp/scsi.o.before scsi_target
/* include/scsi/scsi_device.h:86 */
struct scsi_target {
struct scsi_device * starget_sdev_user; /* 0 4 */
struct list_head siblings; /* 4 8 */
struct list_head devices; /* 12 8 */
struct device dev; /* 20 300 */
/* --- cacheline 10 boundary (320 bytes) --- */
unsigned int reap_ref; /* 320 4 */
unsigned int channel; /* 324 4 */
unsigned int id; /* 328 4 */
unsigned int create:1; /* 332 4 */
/* XXX 31 bits hole, try to pack */
unsigned int pdt_1f_for_no_lun; /* 336 4 */
char scsi_level; /* 340 1 */
/* XXX 3 bytes hole, try to pack */
struct execute_work ew; /* 344 16 */
/* --- cacheline 11 boundary (352 bytes) was 8 bytes ago --- */
enum scsi_target_state state; /* 360 4 */
void * hostdata; /* 364 4 */
long unsigned int starget_data[0]; /* 368 0 */
}; /* size: 368, cachelines: 12 */
/* sum members: 365, holes: 1, sum holes: 3 */
/* bit holes: 1, sum bit holes: 31 bits */
/* last cacheline: 16 bytes */
After:
[acme@newtoy kpahole-2.6]$ pahole --cacheline 32 drivers/scsi/scsi.o scsi_target
/* include/scsi/scsi_device.h:86 */
struct scsi_target {
struct scsi_device * starget_sdev_user; /* 0 4 */
struct list_head siblings; /* 4 8 */
struct list_head devices; /* 12 8 */
struct device dev; /* 20 300 */
/* --- cacheline 10 boundary (320 bytes) --- */
unsigned int reap_ref; /* 320 4 */
unsigned int channel; /* 324 4 */
unsigned int id; /* 328 4 */
char scsi_level; /* 332 1 */
unsigned char create:1; /* 333 1 */
/* XXX 7 bits hole, try to pack */
/* XXX 2 bytes hole, try to pack */
unsigned int pdt_1f_for_no_lun; /* 336 4 */
struct execute_work ew; /* 340 16 */
/* --- cacheline 11 boundary (352 bytes) was 4 bytes ago --- */
enum scsi_target_state state; /* 356 4 */
void * hostdata; /* 360 4 */
long unsigned int starget_data[0]; /* 364 0 */
}; /* size: 364, cachelines: 12 */
/* sum members: 362, holes: 1, sum holes: 2 */
/* bit holes: 1, sum bit holes: 7 bits */
/* last cacheline: 12 bytes */
[acme@newtoy kpahole-2.6]$ codiff -V /tmp/scsi.o.before drivers/scsi/scsi.o
drivers/scsi/scsi.c:
struct scsi_target | -4
create:1;
from: unsigned int /* 332(31) 4(1) */
to: unsigned char /* 333(7) 1(1) */
scsi_level;
from: char /* 340(0) 1(0) */
to: char /* 332(0) 1(0) */
<SNIP offset changes>
1 struct changed
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
---
scsi_device.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index ebf31b1..ab245fc 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
@@ -175,11 +175,11 @@ struct scsi_target {
unsigned int channel;
unsigned int id; /* target id ... replace
* scsi_device.id eventually */
- unsigned int create:1; /* signal that it needs to be added */
+ char scsi_level;
+ unsigned char create:1; /* signal that it needs to be added */
unsigned int pdt_1f_for_no_lun; /* PDT = 0x1f */
/* means no lun present */
- char scsi_level;
struct execute_work ew;
enum scsi_target_state state;
void *hostdata; /* available to low-level driver */
next reply other threads:[~2006-12-12 3:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-12 3:17 Arnaldo Carvalho de Melo [this message]
2006-12-12 3:52 ` [PATCH][SCSI]: Save some bytes in struct scsi_target Matthew Wilcox
2006-12-12 4:17 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061212031718.GC6218@mandriva.com \
--to=acme@mandriva.com \
--cc=James.Bottomley@SteelEye.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.