1. 22 8月, 2011 40 次提交
    • B
      Improvements to libtool support. · 3f534581
      Brad 提交于
      Improvements to the libtool support in QEMU. Replace hard coded
      libtool in the infrastructure with $(LIBTOOL) and allow
      overriding the libtool binary used via the configure
      script.
      Reviewed-by: NAndreas F=E4rber <andreas.faerber@web.de>
      Signed-off-by: NBrad Smith <brad@comstyle.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      3f534581
    • S
      w32: Fix qemu_ftruncate64 · 2c993ec2
      Stefan Weil 提交于
      SetFilePointer returns INVALID_SET_FILE_POINTER when it fails.
      In addition, GetLastError must be checked.
      
      The first call of SetFilePointer did not use INVALID_SET_FILE_POINTER,
      the second call used wrong error handling.
      Signed-off-by: NStefan Weil <weil@mail.berlios.de>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      2c993ec2
    • D
      build: list libraries after objects, for proper linkage · 1f22a6bc
      Diego Elio Pettenò 提交于
      Without this change, when using -Wl,--as-needed with GNU linker, the
      libraries would be discarded.
      Signed-off-by: NDiego Elio Pettenò <flameeyes@flameeyes.eu>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      1f22a6bc
    • R
      fix code format · d62b5dea
      Robert Wang 提交于
      Fix code format to make checkpatch.pl happy.
      Signed-off-by: NRobert Wang <wdongxu@linux.vnet.ibm.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      d62b5dea
    • B
      e1000: use MII status register for link up/down · d4044c2a
      Bjørn Mork 提交于
      Some guests will use the standard MII status register
      to verify link state.  They will not notice link changes
      unless this register is updated.
      
      Verified with Linux 3.0 and Windows XP guests.
      
      Without this patch, ethtool will report speed and duplex as
      unknown when the link is down, but still report the link as
      up.  This is because the Linux e1000 driver checks the
      mac_reg[STATUS] register link state before it checks speed
      and duplex, but uses the phy_reg[PHY_STATUS] register for
      the actual link state check.  Fix by updating both registers
      on link state changes.
      
      Linux guest before:
      
       (qemu) set_link e1000.0 off
      
       kvm-sid:~# ethtool eth0
       Settings for eth0:
              Supported ports: [ TP ]
              Supported link modes:   10baseT/Half 10baseT/Full
                                      100baseT/Half 100baseT/Full
                                      1000baseT/Full
              Supports auto-negotiation: Yes
              Advertised link modes:  10baseT/Half 10baseT/Full
                                      100baseT/Half 100baseT/Full
                                      1000baseT/Full
              Advertised pause frame use: No
              Advertised auto-negotiation: Yes
              Speed: Unknown!
              Duplex: Unknown! (255)
              Port: Twisted Pair
              PHYAD: 0
              Transceiver: internal
              Auto-negotiation: on
              MDI-X: Unknown
              Supports Wake-on: umbg
              Wake-on: d
              Current message level: 0x00000007 (7)
                                     drv probe link
              Link detected: yes
      
       (qemu) set_link e1000.0 on
      
      Linux guest after:
      
       (qemu) set_link e1000.0 off
       [   63.384221] e1000: eth0 NIC Link is Down
      
       kvm-sid:~# ethtool eth0
       Settings for eth0:
              Supported ports: [ TP ]
              Supported link modes:   10baseT/Half 10baseT/Full
                                      100baseT/Half 100baseT/Full
                                      1000baseT/Full
              Supports auto-negotiation: Yes
              Advertised link modes:  10baseT/Half 10baseT/Full
                                      100baseT/Half 100baseT/Full
                                      1000baseT/Full
              Advertised pause frame use: No
              Advertised auto-negotiation: Yes
              Speed: Unknown!
              Duplex: Unknown! (255)
              Port: Twisted Pair
              PHYAD: 0
              Transceiver: internal
              Auto-negotiation: on
              MDI-X: Unknown
              Supports Wake-on: umbg
              Wake-on: d
              Current message level: 0x00000007 (7)
                                     drv probe link
              Link detected: no
      
       (qemu) set_link e1000.0 on
       [   84.304582] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      d4044c2a
    • A
    • A
      char: remove qemu_chr_send_event() · 903396ad
      Anthony Liguori 提交于
      It's dead code.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      903396ad
    • A
    • A
      70f24fb6
    • A
      f69554b9
    • A
      27143a44
    • A
    • A
      41084f1b
    • A
    • A
      c9d830ed
    • A
    • A
      fa5efccb
    • A
      e7e71b0e
    • A
      2cc6e0a1
    • M
      tcg/ppc64: fix 16/32 mixup · 0bf1dbdc
      malc 提交于
      Signed-off-by: Nmalc <av1474@comtv.ru>
      0bf1dbdc
    • M
      Merge branch 'master' of git://git.qemu.org/qemu · 1afa194a
      malc 提交于
      1afa194a
    • M
      tcg/ppc64: implement not_i32/64 and ext32u_i64 · 157f2662
      malc 提交于
      Signed-off-by: Nmalc <av1474@comtv.ru>
      157f2662
    • M
      tcg/ppc32: implement deposit_i32 · 350dba6c
      malc 提交于
      Signed-off-by: Nmalc <av1474@comtv.ru>
      350dba6c
    • A
    • M
      guest agent: remove uneeded dependencies · 957f1f99
      Michael Roth 提交于
      This patch tries to cull any uneeded library dependencies from the guest
      agent to improve portability across various distros. We do so by being
      as explicit as possible about in-tree dependencies rather than relying
      on existing *-obj-y targets, and by manually setting LIBS for the
      qemu-ga target to avoid pulling in LIBS_TOOLS libraries discovered by
      configure.
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      957f1f99
    • M
      guest agent: remove g_strcmp0 usage · 8f477478
      Michael Roth 提交于
      g_strcmp0 isn't in all version of glib 2.0, so don't use it to avoid
      build breakage on older distros.
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      8f477478
    • A
      memory: crack wide ioport accesses into smaller ones when needed · 3a130f4e
      Avi Kivity 提交于
      The memory API supports cracking wide accesses into narrower ones
      when needed; but this was no implemented for the pio address space,
      causing lsi53c895a's IO BAR to malfunction.
      
      Fix by correctly cracking wide accesses when needed.
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      3a130f4e
    • A
      memory: abstract cracking of write access ops into a function · 164a4dcd
      Avi Kivity 提交于
      The memory API automatically cracks large reads and writes into smaller
      ones when needed.  Factor out this mechanism, which is now duplicated between
      memory reads and memory writes, into a function.
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      164a4dcd
    • B
      escc: replace DPRINTFs with tracepoints · 30c2f238
      Blue Swirl 提交于
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      30c2f238
    • 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
    • B
      escc: avoid structure holes spotted by pahole · d7b95534
      Blue Swirl 提交于
      Edited report from pahole on amd64 host:
      struct ChannelState {
      ...
      	ChnType                    type;                 /*    32     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      ...
      	uint8_t                    rregs[16];            /*    66    16 */
      
      	/* XXX 2 bytes hole, try to pack */
      ...
      	/* size: 392, cachelines: 7 */
      	/* sum members: 382, holes: 2, sum holes: 6 */
      	/* padding: 4 */
      	/* last cacheline: 8 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      d7b95534
    • 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
    • B
      pcnet: avoid structure holes spotted by pahole · fe87aa83
      Blue Swirl 提交于
      Edited report from pahole on amd64 host:
      struct PCNetState_st {
      ...
      	uint16_t                   bcr[32];              /*   340    64 */
      
      	/* XXX 4 bytes hole, try to pack */
      ...
      	int                        tx_busy;              /*  4520     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   irq;                  /*  4528     8 */
      	void                       (*phys_mem_read)(void *, target_phys_addr_t, uint8_t *, int, int); /*  4536     8 */
      	/* --- cacheline 71 boundary (4544 bytes) --- */
      	void                       (*phys_mem_write)(void *, target_phys_addr_t, uint8_t *, int, int); /*  4544     8 */
      	void *                     dma_opaque;           /*  4552     8 */
      	int                        looptest;             /*  4560     4 */
      
      	/* size: 4568, cachelines: 72 */
      	/* sum members: 4556, holes: 2, sum holes: 8 */
      	/* padding: 4 */
      	/* last cacheline: 24 bytes */
      };	/* definitions: 2 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      fe87aa83
    • B
      esp: avoid structure holes spotted by pahole · 9a975d63
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct ESPState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	uint32_t                   it_shift;             /*  5648     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   irq;                  /*  5656     8 */
      	uint8_t                    rregs[16];            /*  5664    16 */
      	uint8_t                    wregs[16];            /*  5680    16 */
      	/* --- cacheline 89 boundary (5696 bytes) --- */
      	int32_t                    ti_size;              /*  5696     4 */
      	uint32_t                   ti_rptr;              /*  5700     4 */
      	uint32_t                   ti_wptr;              /*  5704     4 */
      	uint8_t                    ti_buf[16];           /*  5708    16 */
      	uint32_t                   status;               /*  5724     4 */
      	uint32_t                   dma;                  /*  5728     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	SCSIBus                    bus;                  /*  5736  2120 */
      	/* --- cacheline 122 boundary (7808 bytes) was 48 bytes ago --- */
      	SCSIDevice *               current_dev;          /*  7856     8 */
      	SCSIRequest *              current_req;          /*  7864     8 */
      	/* --- cacheline 123 boundary (7872 bytes) --- */
      	uint8_t                    cmdbuf[16];           /*  7872    16 */
      	uint32_t                   cmdlen;               /*  7888     4 */
      	uint32_t                   do_cmd;               /*  7892     4 */
      	uint32_t                   dma_left;             /*  7896     4 */
      	uint32_t                   dma_counter;          /*  7900     4 */
      	uint8_t *                  async_buf;            /*  7904     8 */
      	uint32_t                   async_len;            /*  7912     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	ESPDMAMemoryReadWriteFunc  dma_memory_read;      /*  7920     8 */
      	ESPDMAMemoryReadWriteFunc  dma_memory_write;     /*  7928     8 */
      	/* --- cacheline 124 boundary (7936 bytes) --- */
      	void *                     dma_opaque;           /*  7936     8 */
      	int                        dma_enabled;          /*  7944     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	void                       (*dma_cb)(ESPState *); /*  7952     8 */
      
      	/* size: 7960, cachelines: 125 */
      	/* sum members: 7944, holes: 4, sum holes: 16 */
      	/* last cacheline: 24 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      9a975d63
    • 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
    • B
      tcx: avoid structure holes spotted by pahole · 427a66c3
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct TCXState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	target_phys_addr_t         addr;                 /*  5648     8 */
      	DisplayState *             ds;                   /*  5656     8 */
      	uint8_t *                  vram;                 /*  5664     8 */
      	uint32_t *                 vram24;               /*  5672     8 */
      	uint32_t *                 cplane;               /*  5680     8 */
      	ram_addr_t                 vram_offset;          /*  5688     8 */
      	/* --- cacheline 89 boundary (5696 bytes) --- */
      	ram_addr_t                 vram24_offset;        /*  5696     8 */
      	ram_addr_t                 cplane_offset;        /*  5704     8 */
      	uint32_t                   vram_size;            /*  5712     4 */
      	uint16_t                   width;                /*  5716     2 */
      	uint16_t                   height;               /*  5718     2 */
      	uint16_t                   depth;                /*  5720     2 */
      	uint8_t                    r[256];               /*  5722   256 */
      	/* --- cacheline 93 boundary (5952 bytes) was 26 bytes ago --- */
      	uint8_t                    g[256];               /*  5978   256 */
      	/* --- cacheline 97 boundary (6208 bytes) was 26 bytes ago --- */
      	uint8_t                    b[256];               /*  6234   256 */
      
      	/* XXX 2 bytes hole, try to pack */
      
      	/* --- cacheline 101 boundary (6464 bytes) was 28 bytes ago --- */
      	uint32_t                   palette[256];         /*  6492  1024 */
      	/* --- cacheline 117 boundary (7488 bytes) was 28 bytes ago --- */
      	uint8_t                    dac_index;            /*  7516     1 */
      	uint8_t                    dac_state;            /*  7517     1 */
      
      	/* size: 7520, cachelines: 118 */
      	/* sum members: 7516, holes: 1, sum holes: 2 */
      	/* padding: 2 */
      	/* last cacheline: 32 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      427a66c3
    • B
      sun4m_iommu: avoid structure holes spotted by pahole · 149e1ea1
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct IOMMUState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	uint32_t                   regs[4096];           /*  5648 16384 */
      	/* --- cacheline 344 boundary (22016 bytes) was 16 bytes ago --- */
      	target_phys_addr_t         iostart;              /* 22032     8 */
      	uint32_t                   version;              /* 22040     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   irq;                  /* 22048     8 */
      
      	/* size: 22056, cachelines: 345 */
      	/* sum members: 22052, holes: 1, sum holes: 4 */
      	/* last cacheline: 40 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      149e1ea1
    • B
      slavio_intctl: avoid structure holes spotted by pahole · 07dd0035
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct SLAVIO_INTCTLState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	uint32_t                   intregm_pending;      /*  5648     4 */
      	uint32_t                   intregm_disabled;     /*  5652     4 */
      	uint32_t                   target_cpu;           /*  5656     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   cpu_irqs[16][16];     /*  5664  2048 */
      	/* --- cacheline 120 boundary (7680 bytes) was 32 bytes ago --- */
      	SLAVIO_CPUINTCTLState      slaves[16];           /*  7712   384 */
      	/* --- cacheline 126 boundary (8064 bytes) was 32 bytes ago --- */
      
      	/* size: 8096, cachelines: 127 */
      	/* sum members: 8092, holes: 1, sum holes: 4 */
      	/* last cacheline: 32 bytes */
      };	/* definitions: 1 */
      
      struct SLAVIO_CPUINTCTLState {
      	uint32_t                   intreg_pending;       /*     0     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	struct SLAVIO_INTCTLState * master;              /*     8     8 */
      	uint32_t                   cpu;                  /*    16     4 */
      	uint32_t                   irl_out;              /*    20     4 */
      
      	/* size: 24, cachelines: 1 */
      	/* sum members: 20, holes: 1, sum holes: 4 */
      	/* last cacheline: 24 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structures to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      07dd0035
    • B
      slavio_misc: avoid structure holes spotted by pahole · 97bbb109
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct MiscState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	qemu_irq                   irq;                  /*  5648     8 */
      	uint32_t                   dummy;                /*  5656     4 */
      	uint8_t                    config;               /*  5660     1 */
      	uint8_t                    aux1;                 /*  5661     1 */
      	uint8_t                    aux2;                 /*  5662     1 */
      	uint8_t                    diag;                 /*  5663     1 */
      	uint8_t                    mctrl;                /*  5664     1 */
      	uint8_t                    sysctrl;              /*  5665     1 */
      	uint16_t                   leds;                 /*  5666     2 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   fdc_tc;               /*  5672     8 */
      
      	/* size: 5680, cachelines: 89 */
      	/* sum members: 5676, holes: 1, sum holes: 4 */
      	/* last cacheline: 48 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      97bbb109
    • B
      slavio_timer: avoid structure holes spotted by pahole · f90074f4
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct SLAVIO_TIMERState {
      	SysBusDevice               busdev;               /*     0  5648 */
      	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
      	uint32_t                   num_cpus;             /*  5648     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	CPUTimerState              cputimer[17];         /*  5656   816 */
      	/* --- cacheline 101 boundary (6464 bytes) was 8 bytes ago --- */
      	uint32_t                   cputimer_mode;        /*  6472     4 */
      
      	/* size: 6480, cachelines: 102 */
      	/* sum members: 6472, holes: 1, sum holes: 4 */
      	/* padding: 4 */
      	/* last cacheline: 16 bytes */
      };	/* definitions: 1 */
      
      struct CPUTimerState {
      	qemu_irq                   irq;                  /*     0     8 */
      	ptimer_state *             timer;                /*     8     8 */
      	uint32_t                   count;                /*    16     4 */
      	uint32_t                   counthigh;            /*    20     4 */
      	uint32_t                   reached;              /*    24     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	uint64_t                   limit;                /*    32     8 */
      	uint32_t                   running;              /*    40     4 */
      
      	/* size: 48, cachelines: 1 */
      	/* sum members: 40, holes: 1, sum holes: 4 */
      	/* padding: 4 */
      	/* last cacheline: 48 bytes */
      };	/* definitions: 1 */
      
      Fix by rearranging the structures to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      f90074f4