From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:36321) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QqAS5-0001d0-0N for qemu-devel@nongnu.org; Sun, 07 Aug 2011 17:00:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QqAS3-0001Ml-RK for qemu-devel@nongnu.org; Sun, 07 Aug 2011 17:00:04 -0400 Received: from mail-qw0-f45.google.com ([209.85.216.45]:34018) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QqAS3-0001Mh-MG for qemu-devel@nongnu.org; Sun, 07 Aug 2011 17:00:03 -0400 Received: by qwj8 with SMTP id 8so1107948qwj.4 for ; Sun, 07 Aug 2011 14:00:03 -0700 (PDT) MIME-Version: 1.0 From: Blue Swirl Date: Sun, 7 Aug 2011 20:59:43 +0000 Message-ID: Content-Type: multipart/mixed; boundary=20cf3074d90e4d228204a9f09dcc Subject: [Qemu-devel] [PATCH 06/11] sun4m: avoid structure holes spotted by pahole List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel --20cf3074d90e4d228204a9f09dcc Content-Type: text/plain; charset=UTF-8 Edited report from pahole on amd64 host: struct sun4c_hwdef { ... uint8_t nvram_machine_id; /* 112 1 */ /* XXX 1 byte hole, try to pack */ ... /* size: 136, cachelines: 3 */ /* sum members: 135, holes: 1, sum holes: 1 */ /* last cacheline: 8 bytes */ }; /* definitions: 1 */ struct sun4d_hwdef { ... uint8_t nvram_machine_id; /* 128 1 */ /* XXX 1 byte hole, try to pack */ ... /* size: 152, cachelines: 3 */ /* sum members: 151, holes: 1, sum holes: 1 */ /* last cacheline: 24 bytes */ }; /* definitions: 1 */ struct sun4m_hwdef { ... uint8_t nvram_machine_id; /* 260 1 */ /* XXX 1 byte hole, try to pack */ uint16_t machine_id; /* 262 2 */ uint32_t iommu_version; /* 264 4 */ /* XXX 4 bytes hole, try to pack */ ... /* size: 288, cachelines: 5 */ /* sum members: 283, holes: 2, sum holes: 5 */ /* last cacheline: 32 bytes */ }; /* definitions: 1 */ Fix by rearranging the structures to avoid padding. Signed-off-by: Blue Swirl --- hw/sun4m.c | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/hw/sun4m.c b/hw/sun4m.c index df3aa32..5afb1b1 100644 --- a/hw/sun4m.c +++ b/hw/sun4m.c @@ -97,12 +97,12 @@ struct sun4m_hwdef { target_phys_addr_t reg_base, vram_base; } vsimm[MAX_VSIMMS]; target_phys_addr_t ecc_base; - uint32_t ecc_version; - uint8_t nvram_machine_id; - uint16_t machine_id; - uint32_t iommu_version; uint64_t max_mem; const char * const default_cpu_model; + uint32_t ecc_version; + uint32_t iommu_version; + uint16_t machine_id; + uint8_t nvram_machine_id; }; #define MAX_IOUNITS 5 @@ -115,11 +115,11 @@ struct sun4d_hwdef { target_phys_addr_t ledma_base, le_base; target_phys_addr_t tcx_base; target_phys_addr_t sbi_base; - uint8_t nvram_machine_id; - uint16_t machine_id; - uint32_t iounit_version; uint64_t max_mem; const char * const default_cpu_model; + uint32_t iounit_version; + uint16_t machine_id; + uint8_t nvram_machine_id; }; struct sun4c_hwdef { @@ -128,11 +128,11 @@ struct sun4c_hwdef { target_phys_addr_t serial_base, fd_base; target_phys_addr_t idreg_base, dma_base, esp_base, le_base; target_phys_addr_t tcx_base, aux1_base; - uint8_t nvram_machine_id; - uint16_t machine_id; - uint32_t iommu_version; uint64_t max_mem; const char * const default_cpu_model; + uint32_t iommu_version; + uint16_t machine_id; + uint8_t nvram_machine_id; }; int DMA_get_channel_mode (int nchan) -- 1.6.2.4 --20cf3074d90e4d228204a9f09dcc Content-Type: text/x-patch; charset=US-ASCII; name="0006-sun4m-avoid-structure-holes-spotted-by-pahole.patch" Content-Disposition: attachment; filename="0006-sun4m-avoid-structure-holes-spotted-by-pahole.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gr2hwpy40 RnJvbSBkY2U1YTc5MDFiODBlZTAzOGE2YzI4ZWUwNTIwNTg4NTMxYjhlNWNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8ZGNlNWE3OTAxYjgwZWUwMzhhNmMyOGVlMDUyMDU4 ODUzMWI4ZTVjYi4xMzEyNzUwNjAwLmdpdC5ibGF1d2lyYmVsQGdtYWlsLmNvbT4KSW4tUmVwbHkt VG86IDw1NGVhZTA3MGY5MDU2NzkwZmE0MWI0NjgzNjBkMjNjZGQxNzUwM2Y0LjEzMTI3NTA2MDAu Z2l0LmJsYXV3aXJiZWxAZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8NTRlYWUwNzBmOTA1Njc5MGZh NDFiNDY4MzYwZDIzY2RkMTc1MDNmNC4xMzEyNzUwNjAwLmdpdC5ibGF1d2lyYmVsQGdtYWlsLmNv bT4KRnJvbTogQmx1ZSBTd2lybCA8YmxhdXdpcmJlbEBnbWFpbC5jb20+CkRhdGU6IFN1biwgNyBB dWcgMjAxMSAxOToyMjo0NiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTFdIHN1bjRtOiBhdm9p ZCBzdHJ1Y3R1cmUgaG9sZXMgc3BvdHRlZCBieSBwYWhvbGUKCkVkaXRlZCByZXBvcnQgZnJvbSBw YWhvbGUgb24gYW1kNjQgaG9zdDoKc3RydWN0IHN1bjRjX2h3ZGVmIHsKLi4uCgl1aW50OF90ICAg ICAgICAgICAgICAgICAgICBudnJhbV9tYWNoaW5lX2lkOyAgICAgLyogICAxMTIgICAgIDEgKi8K CgkvKiBYWFggMSBieXRlIGhvbGUsIHRyeSB0byBwYWNrICovCi4uLgoJLyogc2l6ZTogMTM2LCBj YWNoZWxpbmVzOiAzICovCgkvKiBzdW0gbWVtYmVyczogMTM1LCBob2xlczogMSwgc3VtIGhvbGVz OiAxICovCgkvKiBsYXN0IGNhY2hlbGluZTogOCBieXRlcyAqLwp9OwkvKiBkZWZpbml0aW9uczog MSAqLwoKc3RydWN0IHN1bjRkX2h3ZGVmIHsKLi4uCgl1aW50OF90ICAgICAgICAgICAgICAgICAg ICBudnJhbV9tYWNoaW5lX2lkOyAgICAgLyogICAxMjggICAgIDEgKi8KCgkvKiBYWFggMSBieXRl IGhvbGUsIHRyeSB0byBwYWNrICovCi4uLgoJLyogc2l6ZTogMTUyLCBjYWNoZWxpbmVzOiAzICov CgkvKiBzdW0gbWVtYmVyczogMTUxLCBob2xlczogMSwgc3VtIGhvbGVzOiAxICovCgkvKiBsYXN0 IGNhY2hlbGluZTogMjQgYnl0ZXMgKi8KfTsJLyogZGVmaW5pdGlvbnM6IDEgKi8KCnN0cnVjdCBz dW40bV9od2RlZiB7Ci4uLgoJdWludDhfdCAgICAgICAgICAgICAgICAgICAgbnZyYW1fbWFjaGlu ZV9pZDsgICAgIC8qICAgMjYwICAgICAxICovCgoJLyogWFhYIDEgYnl0ZSBob2xlLCB0cnkgdG8g cGFjayAqLwoKCXVpbnQxNl90ICAgICAgICAgICAgICAgICAgIG1hY2hpbmVfaWQ7ICAgICAgICAg ICAvKiAgIDI2MiAgICAgMiAqLwoJdWludDMyX3QgICAgICAgICAgICAgICAgICAgaW9tbXVfdmVy c2lvbjsgICAgICAgIC8qICAgMjY0ICAgICA0ICovCgoJLyogWFhYIDQgYnl0ZXMgaG9sZSwgdHJ5 IHRvIHBhY2sgKi8KLi4uCgkvKiBzaXplOiAyODgsIGNhY2hlbGluZXM6IDUgKi8KCS8qIHN1bSBt ZW1iZXJzOiAyODMsIGhvbGVzOiAyLCBzdW0gaG9sZXM6IDUgKi8KCS8qIGxhc3QgY2FjaGVsaW5l OiAzMiBieXRlcyAqLwp9OwkvKiBkZWZpbml0aW9uczogMSAqLwoKRml4IGJ5IHJlYXJyYW5naW5n IHN0cnVjdHVyZXMgdG8gYXZvaWQgcGFkZGluZy4KClNpZ25lZC1vZmYtYnk6IEJsdWUgU3dpcmwg PGJsYXV3aXJiZWxAZ21haWwuY29tPgotLS0KIGh3L3N1bjRtLmMgfCAgIDIwICsrKysrKysrKyst LS0tLS0tLS0tCiAxIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2h3L3N1bjRtLmMgYi9ody9zdW40bS5jCmluZGV4IGRmM2FhMzIu LjVhZmIxYjEgMTAwNjQ0Ci0tLSBhL2h3L3N1bjRtLmMKKysrIGIvaHcvc3VuNG0uYwpAQCAtOTcs MTIgKzk3LDEyIEBAIHN0cnVjdCBzdW40bV9od2RlZiB7CiAgICAgICAgIHRhcmdldF9waHlzX2Fk ZHJfdCByZWdfYmFzZSwgdnJhbV9iYXNlOwogICAgIH0gdnNpbW1bTUFYX1ZTSU1NU107CiAgICAg dGFyZ2V0X3BoeXNfYWRkcl90IGVjY19iYXNlOwotICAgIHVpbnQzMl90IGVjY192ZXJzaW9uOwot ICAgIHVpbnQ4X3QgbnZyYW1fbWFjaGluZV9pZDsKLSAgICB1aW50MTZfdCBtYWNoaW5lX2lkOwot ICAgIHVpbnQzMl90IGlvbW11X3ZlcnNpb247CiAgICAgdWludDY0X3QgbWF4X21lbTsKICAgICBj b25zdCBjaGFyICogY29uc3QgZGVmYXVsdF9jcHVfbW9kZWw7CisgICAgdWludDMyX3QgZWNjX3Zl cnNpb247CisgICAgdWludDMyX3QgaW9tbXVfdmVyc2lvbjsKKyAgICB1aW50MTZfdCBtYWNoaW5l X2lkOworICAgIHVpbnQ4X3QgbnZyYW1fbWFjaGluZV9pZDsKIH07CiAKICNkZWZpbmUgTUFYX0lP VU5JVFMgNQpAQCAtMTE1LDExICsxMTUsMTEgQEAgc3RydWN0IHN1bjRkX2h3ZGVmIHsKICAgICB0 YXJnZXRfcGh5c19hZGRyX3QgbGVkbWFfYmFzZSwgbGVfYmFzZTsKICAgICB0YXJnZXRfcGh5c19h ZGRyX3QgdGN4X2Jhc2U7CiAgICAgdGFyZ2V0X3BoeXNfYWRkcl90IHNiaV9iYXNlOwotICAgIHVp bnQ4X3QgbnZyYW1fbWFjaGluZV9pZDsKLSAgICB1aW50MTZfdCBtYWNoaW5lX2lkOwotICAgIHVp bnQzMl90IGlvdW5pdF92ZXJzaW9uOwogICAgIHVpbnQ2NF90IG1heF9tZW07CiAgICAgY29uc3Qg Y2hhciAqIGNvbnN0IGRlZmF1bHRfY3B1X21vZGVsOworICAgIHVpbnQzMl90IGlvdW5pdF92ZXJz aW9uOworICAgIHVpbnQxNl90IG1hY2hpbmVfaWQ7CisgICAgdWludDhfdCBudnJhbV9tYWNoaW5l X2lkOwogfTsKIAogc3RydWN0IHN1bjRjX2h3ZGVmIHsKQEAgLTEyOCwxMSArMTI4LDExIEBAIHN0 cnVjdCBzdW40Y19od2RlZiB7CiAgICAgdGFyZ2V0X3BoeXNfYWRkcl90IHNlcmlhbF9iYXNlLCBm ZF9iYXNlOwogICAgIHRhcmdldF9waHlzX2FkZHJfdCBpZHJlZ19iYXNlLCBkbWFfYmFzZSwgZXNw X2Jhc2UsIGxlX2Jhc2U7CiAgICAgdGFyZ2V0X3BoeXNfYWRkcl90IHRjeF9iYXNlLCBhdXgxX2Jh c2U7Ci0gICAgdWludDhfdCBudnJhbV9tYWNoaW5lX2lkOwotICAgIHVpbnQxNl90IG1hY2hpbmVf aWQ7Ci0gICAgdWludDMyX3QgaW9tbXVfdmVyc2lvbjsKICAgICB1aW50NjRfdCBtYXhfbWVtOwog ICAgIGNvbnN0IGNoYXIgKiBjb25zdCBkZWZhdWx0X2NwdV9tb2RlbDsKKyAgICB1aW50MzJfdCBp b21tdV92ZXJzaW9uOworICAgIHVpbnQxNl90IG1hY2hpbmVfaWQ7CisgICAgdWludDhfdCBudnJh bV9tYWNoaW5lX2lkOwogfTsKIAogaW50IERNQV9nZXRfY2hhbm5lbF9tb2RlIChpbnQgbmNoYW4p Ci0tIAoxLjcuMi41Cgo= --20cf3074d90e4d228204a9f09dcc--