[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1] s390x/kvm: fix and cleanup storing CPU statu
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] [PATCH v1] s390x/kvm: fix and cleanup storing CPU status |
Date: |
Fri, 22 Sep 2017 15:18:52 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
On 22.09.2017 15:12, Richard Henderson wrote:
> On 09/21/2017 04:30 PM, David Hildenbrand wrote:
>> +struct sigp_save_area {
>> + uint64_t fprs[16]; /* 0x0000 */
>> + uint64_t grs[16]; /* 0x0080 */
>> + PSW psw; /* 0x0100 */
>> + uint8_t pad_0x0110[0x0118 - 0x0110]; /* 0x0110 */
>> + uint32_t prefix; /* 0x0118 */
>> + uint32_t fpc; /* 0x011c */
>> + uint8_t pad_0x0120[0x0124 - 0x0120]; /* 0x0120 */
>> + uint32_t todpr; /* 0x0124 */
>> + uint64_t cputm; /* 0x0128 */
>> + uint64_t ckc; /* 0x0130 */
>> + uint8_t pad_0x0138[0x0140 - 0x0138]; /* 0x0138 */
>> + uint32_t ars[16]; /* 0x0140 */
>> + uint64_t crs[16]; /* 0x0384 */
>> +} QEMU_PACKED;
>
> I don't believe you need to use QEMU_PACKED. Unless the "addr" that's passed
> in can really be arbitrary? (If so, the memory returned by
> cpu_physical_memory_map will be unaligned and so we do need the PACKED to
> force
> the compiler to generate unaligned stores into the structure.)
The address is either 0x1200 or it is masked with 0x7ffffe00u.
So most probably this should be fine without QEMU_PACKED, right?
>
>> QEMU_BUILD_BUG_ON(sizeof(*sa) != 512);
>
> Put this right next to the structure?
>
Wasn't aware that this can be moved outside of a function. Thanks!
Thanks!
>
> r~
>
--
Thanks,
David