2008-03-23 03:42:24

by Denys Vlasenko

[permalink] [raw]
Subject: [PATCH 0/3] debloat aic7xxx and aic79xx drivers

Hi Andrew,

Can you please take these patches into -mm?

I seem to be unable to push them through scsi people,
they silently drop them on the floor.

There patches significantly debloat drivers/scsi/aic7xxx/*.

1-debloat.patch
Deinlines and moves big functions from .h to .c files.
Adds prototypes for ahc_lookup_scb and ahd_lookup_scb to .h files.

2-addstatic.patch
Adds statics, #ifdefs out huge amount of unused code, adds consts

3-addconst.patch
Adds more consts

Driver code/data size reductions with and without debugging enabled
(aic0 is just an unmodified linux-2.6.25-rc6):

text data bss dec hex filename
211264 28258 1172 240694 3ac36 linux-2.6.25-rc6-aic0-TEST/drivers/scsi/aic7xxx/built-in.o
160012 28258 1172 189442 2e402 linux-2.6.25-rc6-aic1-TEST/drivers/scsi/aic7xxx/built-in.o
166698 20786 1172 188656 2e0f0 linux-2.6.25-rc6-aic2-TEST/drivers/scsi/aic7xxx/built-in.o
185014 2346 1172 188532 2e074 linux-2.6.25-rc6-aic3-TEST/drivers/scsi/aic7xxx/built-in.o

text data bss dec hex filename
264496 47922 1188 313606 4c906 linux-2.6.25-rc6-aic0-TEST2/drivers/scsi/aic7xxx/built-in.o
201056 47922 1188 250166 3d136 linux-2.6.25-rc6-aic1-TEST2/drivers/scsi/aic7xxx/built-in.o
186564 20786 1188 208538 32e9a linux-2.6.25-rc6-aic2-TEST2/drivers/scsi/aic7xxx/built-in.o
204880 2346 1188 208414 32e1e linux-2.6.25-rc6-aic3-TEST2/drivers/scsi/aic7xxx/built-in.o

Configs used for these builds are attached to this email
for anyone interested.

make namespacecheck goes from 400+ functions to:
drivers/scsi/aic7xxx/aic79xx_core.o
ahd_inq
ahd_inw
ahd_outq
ahd_outw
drivers/scsi/aic7xxx/aic79xx_osm.o
ahd_insb
drivers/scsi/aic7xxx/aic7xxx_core.o
ahc_inq
ahc_outq
drivers/scsi/aic7xxx/aic7xxx_osm.o
ahc_insb

None of these patches touch any logic, code changes are pretty minimal.

Compile tested and applies cleanly to 2.6.25-rc6.
I don't have this hardware anymore and cannot run test these patches,
but other people reported success in the past:

On Monday 15 October 2007 14:53, Gabriel C wrote:
> > I can test these patches on an aic7892 controller later on today if you want.
>
> Works fine for me tested on :
>
> 03:0e.0 SCSI storage controller [0100]: Adaptec AIC-7892P U160/m [9005:008f] (rev 02)

Signed-off-by: Denys Vlasenko <[email protected]>
--
vda


Attachments:
(No filename) (2.37 kB)
config-TEST.bz2 (7.77 kB)
config-TEST2.bz2 (7.87 kB)
Download all attachments

2008-03-23 03:43:09

by Denys Vlasenko

[permalink] [raw]
Subject: [PATCH 1/3] debloat aic7xxx and aic79xx drivers

Deinlines and moves big functions from .h to .c files.
Adds prototypes for ahc_lookup_scb and ahd_lookup_scb to .h files.

Signed-off-by: Denys Vlasenko <[email protected]>
--
vda


Attachments:
(No filename) (187.00 B)
linux-2.6.25-rc6-aic1-debloat.diff.bz2 (14.70 kB)
Download all attachments

2008-03-23 03:43:46

by Denys Vlasenko

[permalink] [raw]
Subject: [PATCH 2/3] debloat aic7xxx and aic79xx drivers

Adds statics, #ifdefs out huge amount of unused code, adds consts

Signed-off-by: Denys Vlasenko <[email protected]>
--
vda


Attachments:
(No filename) (132.00 B)
linux-2.6.25-rc6-aic2-addstatic.diff.bz2 (24.11 kB)
Download all attachments