• B
    fdc: avoid structure holes spotted by pahole · 242cca4f
    Blue Swirl 提交于
    Edited report from pahole on amd64 host:
    struct FDCtrl {
    	uint8_t                    version;              /*     0     1 */
    
    	/* XXX 7 bytes hole, try to pack */
    
    	qemu_irq                   irq;                  /*     8     8 */
    	int                        dma_chann;            /*    16     4 */
    
    	/* XXX 4 bytes hole, try to pack */
    ...
    	uint8_t                    status2;              /*    42     1 */
    
    	/* XXX 5 bytes hole, try to pack */
    
    	uint8_t *                  fifo;                 /*    48     8 */
    ...
    	uint8_t                    pwrd;                 /*    76     1 */
    
    	/* XXX 3 bytes hole, try to pack */
    
    	int                        sun4m;                /*    80     4 */
    	uint8_t                    num_floppies;         /*    84     1 */
    
    	/* XXX 3 bytes hole, try to pack */
    
    	FDrive                     drives[2];            /*    88    64 */
    	/* --- cacheline 2 boundary (128 bytes) was 24 bytes ago --- */
    	int                        reset_sensei;         /*   152     4 */
    
    	/* size: 160, cachelines: 3 */
    	/* sum members: 134, holes: 5, sum holes: 22 */
    	/* padding: 4 */
    	/* last cacheline: 32 bytes */
    };	/* definitions: 1 */
    
    Fix by rearranging the structure to avoid padding.
    Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
    242cca4f
fdc.c 60.4 KB