Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1467290 > unrolled thread
| Started by | Joe Perches <joe@perches.com> |
|---|---|
| First post | 2016-08-22 02:10 +0200 |
| Last post | 2016-08-22 19:00 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] skx_edac: Move a few hundred bytes to text from data using const Joe Perches <joe@perches.com> - 2016-08-22 02:10 +0200
Re: [PATCH] skx_edac: Move a few hundred bytes to text from data using const "Luck, Tony" <tony.luck@intel.com> - 2016-08-22 18:50 +0200
Re: [PATCH] skx_edac: Move a few hundred bytes to text from data using const Joe Perches <joe@perches.com> - 2016-08-22 19:00 +0200
| From | Joe Perches <joe@perches.com> |
|---|---|
| Date | 2016-08-22 02:10 +0200 |
| Subject | [PATCH] skx_edac: Move a few hundred bytes to text from data using const |
| Message-ID | <s8KYp-7hH-5@gated-at.bofh.it> |
Marking arrays as const makes for smaller data.
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/edac/skx_edac.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/edac/skx_edac.c b/drivers/edac/skx_edac.c
index 0ff4878..875e74f 100644
--- a/drivers/edac/skx_edac.c
+++ b/drivers/edac/skx_edac.c
@@ -762,23 +762,23 @@ rir_found:
return true;
}
-static u8 skx_close_row[] = {
+static const u8 skx_close_row[] = {
15, 16, 17, 18, 20, 21, 22, 28, 10, 11, 12, 13, 29, 30, 31, 32, 33
};
-static u8 skx_close_column[] = {
+static const u8 skx_close_column[] = {
3, 4, 5, 14, 19, 23, 24, 25, 26, 27
};
-static u8 skx_open_row[] = {
+static const u8 skx_open_row[] = {
14, 15, 16, 20, 28, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33
};
-static u8 skx_open_column[] = {
+static const u8 skx_open_column[] = {
3, 4, 5, 6, 7, 8, 9, 10, 11, 12
};
-static u8 skx_open_fine_column[] = {
+static const u8 skx_open_fine_column[] = {
3, 4, 5, 7, 8, 9, 10, 11, 12, 13
};
-static int skx_bits(u64 addr, int nbits, u8 *bits)
+static int skx_bits(u64 addr, int nbits, const u8 *bits)
{
int i, res = 0;
@@ -884,7 +884,8 @@ static void skx_mce_output_error(struct mem_ctl_info *mci,
struct decoded_addr *res)
{
enum hw_event_mc_err_type tp_event;
- char *type, *optype, msg[256];
+ const char *type, *optype;
+ char msg[256];
bool ripv = GET_BITFIELD(m->mcgstatus, 0, 0);
bool overflow = GET_BITFIELD(m->status, 62, 62);
bool uncorrected_error = GET_BITFIELD(m->status, 61, 61);
--
2.8.0.rc4.16.g56331f8
[toc] | [next] | [standalone]
| From | "Luck, Tony" <tony.luck@intel.com> |
|---|---|
| Date | 2016-08-22 18:50 +0200 |
| Subject | Re: [PATCH] skx_edac: Move a few hundred bytes to text from data using const |
| Message-ID | <s90A9-iZ-1@gated-at.bofh.it> |
| In reply to | #1467290 |
On Sun, Aug 21, 2016 at 05:02:41PM -0700, Joe Perches wrote: > Marking arrays as const makes for smaller data. Joe, "a few hundred" seems to be exaggeration. Before: $ size drivers/edac/skx_edac.ko text data bss dec hex filename 8435 1024 24 9483 250b drivers/edac/skx_edac.ko After: $ size drivers/edac/skx_edac.ko text data bss dec hex filename 8531 944 24 9499 251b drivers/edac/skx_edac.ko so "data" was reduced by 80 bytes, but "text" went up by 96. Net increase of 16 (perhaps because some padding for alignment???) Making read-only data const is a good idea in general, but do we want to do it if it *increases* kernel footprint? -Tony
[toc] | [prev] | [next] | [standalone]
| From | Joe Perches <joe@perches.com> |
|---|---|
| Date | 2016-08-22 19:00 +0200 |
| Subject | Re: [PATCH] skx_edac: Move a few hundred bytes to text from data using const |
| Message-ID | <s90JQ-my-31@gated-at.bofh.it> |
| In reply to | #1467789 |
On Mon, 2016-08-22 at 09:46 -0700, Luck, Tony wrote: > On Sun, Aug 21, 2016 at 05:02:41PM -0700, Joe Perches wrote: > > Marking arrays as const makes for smaller data. > Joe, Hi Tony > "a few hundred" seems to be exaggeration. > > Before: > $ size drivers/edac/skx_edac.ko > text data bss dec hex filename > 8435 1024 24 9483 250b drivers/edac/skx_edac.ko > > After: > $ size drivers/edac/skx_edac.ko > text data bss dec hex filename > 8531 944 24 9499 251b drivers/edac/skx_edac.ko > > so "data" was reduced by 80 bytes, but "text" went up by 96. Yeah, it was a few hundred in an allyesconfig and I neglected to test the defconfig. $ size drivers/edac/skx_edac.o* (x86-64) text data bss dec hex filename 6677 64 24 6765 1a6d drivers/edac/skx_edac.o.defconfig.new 6546 176 24 6746 1a5a drivers/edac/skx_edac.o.defconfig.old 20609 5744 320 26673 6831 drivers/edac/skx_edac.o.new 20273 6064 320 26657 6821 drivers/edac/skx_edac.o.old > Net increase of 16 (perhaps because some padding for alignment???) > > Making read-only data const is a good idea in general, but > do we want to do it if it *increases* kernel footprint? Marking all data const that can be const is a good thing. It reduces exposure and eliminates unintentional overwriting.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web