• B
    m48t59: avoid structure holes spotted by pahole · 42c812b9
    Blue Swirl 提交于
    Report from pahole on amd64 host:
    struct M48t59State {
    	uint32_t                   type;                 /*     0     4 */
    
    	/* XXX 4 bytes hole, try to pack */
    
    	qemu_irq                   IRQ;                  /*     8     8 */
    	uint32_t                   io_base;              /*    16     4 */
    	uint32_t                   size;                 /*    20     4 */
    	time_t                     time_offset;          /*    24     8 */
    	time_t                     stop_time;            /*    32     8 */
    	struct tm                  alarm;                /*    40    56 */
    	/* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */
    	struct QEMUTimer *         alrm_timer;           /*    96     8 */
    	struct QEMUTimer *         wd_timer;             /*   104     8 */
    	uint8_t                    lock;                 /*   112     1 */
    
    	/* XXX 1 byte hole, try to pack */
    
    	uint16_t                   addr;                 /*   114     2 */
    
    	/* XXX 4 bytes hole, try to pack */
    
    	uint8_t *                  buffer;               /*   120     8 */
    	/* --- cacheline 2 boundary (128 bytes) --- */
    
    	/* size: 128, cachelines: 2 */
    	/* sum members: 119, holes: 3, sum holes: 9 */
    };	/* definitions: 1 */
    
    Fix by rearranging the structure to avoid padding.
    Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
    42c812b9
m48t59.c 19.6 KB