• B
    sun4m: avoid structure holes spotted by pahole · 61999750
    Blue Swirl 提交于
    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: NBlue Swirl <blauwirbel@gmail.com>
    61999750
sun4m.c 56.5 KB