From: Mitsyanko Igor <i.mitsyanko@samsung.com>
To: andrzej zaborowski <balrogg@gmail.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
e.voevodin@samsung.com, quintela@redhat.com,
qemu-devel@nongnu.org, kyungmin.park@samsung.com,
d.solodkiy@samsung.com, m.kozlov@samsung.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH 3/5] hw/pxa2xx_lcd.c: drop VMSTATE_UINTTL usage
Date: Wed, 22 Feb 2012 17:32:39 +0400 [thread overview]
Message-ID: <4F44EE77.7080505@samsung.com> (raw)
In-Reply-To: <CAOq732KTyBwUz=VHEg-qSJAj3gbMZ2VGQBZ61DcacykGXAfiOA@mail.gmail.com>
On 02/22/2012 04:56 PM, andrzej zaborowski wrote:
> On 22 February 2012 13:48, Peter Maydell<peter.maydell@linaro.org> wrote:
>> On 22 February 2012 12:13, andrzej zaborowski<balrogg@gmail.com> wrote:
>>> On 22 February 2012 13:00, Peter Maydell<peter.maydell@linaro.org> wrote:
>>>> On 22 February 2012 11:36, andrzej zaborowski<balrog@zabor.org> wrote:
>>>>> On 22 February 2012 11:15, Igor Mitsyanko<i.mitsyanko@samsung.com> wrote:
>>>>>> Convert three variables in DMAChannel state from type target_phys_addr_t to uint32_t,
>>>>>> use VMSTATE_UINT32 instead of VMSTATE_UINTTL for these variables.
>>>>>> We can do it safely because:
>>>>>> 1) pxa2xx has 32-bit physical address;
>>>>>> 2) rest of the code in this file treats these variables as uint32_t;
>>>>> Why's uint32_t more correct though? The purpose of using a named type
>>>>> across qemu is to mark fields as memory addresses (similar to size_t
>>>>> being used for sizes, etc.), uint32_t conveys less information -- only
>>>>> the size.
>>>>>
>>>>> It's a safe hack, but I don't see the rationale.
>>>> Because we might change target_phys_addr_t to 64 bits globally
>>>> some day (it's certainly been mooted) and that shouldn't suddenly
>>>> change the register width and certainly shouldn't change the
>>>> migration state.
>>>>
>>>> Basically VMSTATE_UINTTL in hw/ is always a bug, because its
>>>> behaviour depends on the size of target_ulong, which is a
>>>> property of the CPU, which is a completely separate device.
>>> I'm not really discussing that, my question is unrelated to
>>> migration/savevm because the patch touches parts that shouldn't be
>>> concerned with migration. If a particular function (like migration)
>>> needs the type converted to something then that's why C has type
>>> conversions. A type conversion that compiles to no code is still a
>>> type conversion.
>> Well, target_phys_addr_t is the wrong type here because it's
>> really "at least as large as the widest address type in the
>> system" (cf proposals to make it 64 bits), so using it for
>> a register that must be exactly 32 bits wide is wrong. So we
>> need to change it to something, and customarily what we use
>> for "I am modelling a physical register which is 32 bits wide"
>> is uint32_t. Introducing extra device-specific typedefs to
>> try to label the semantics of device registers seems a bit
>> unnecessary to me.
> If we treat the struct as a representation of the register values
> rather than state of the emulated device then I guess you're right.
> The reason it rings an alarm is that the change is not an improvement
> (other than for migration, but again the change is in code that is not
> related to savevm)
>
> Cheers
>
It's an improvement in a way that it fixes a (style) bug in code,
VMSTATE_UINTTL* macro are not intended for target_phys_addr_t.
--
Mitsyanko Igor
ASWG, Moscow R&D center, Samsung Electronics
email: i.mitsyanko@samsung.com
next prev parent reply other threads:[~2012-02-22 13:32 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-22 10:15 [Qemu-devel] [PATCH 0/5] VMState cleanups Igor Mitsyanko
2012-02-22 10:15 ` [Qemu-devel] [PATCH 1/5] target-alpha/machine.c: use VMSTATE_UINT64* instead of VMSTATE_UINTTL* Igor Mitsyanko
2012-02-22 11:19 ` Peter Maydell
2012-02-22 13:49 ` Juan Quintela
2012-02-22 10:15 ` [Qemu-devel] [PATCH 2/5] hw/pxa2xx_dma.c: drop VMSTATE_UINTTL usage Igor Mitsyanko
2012-02-22 11:06 ` Peter Maydell
2012-02-22 13:47 ` Juan Quintela
2012-02-22 13:52 ` Peter Maydell
2012-02-22 14:05 ` Juan Quintela
2012-02-22 10:15 ` [Qemu-devel] [PATCH 3/5] hw/pxa2xx_lcd.c: " Igor Mitsyanko
2012-02-22 11:07 ` Peter Maydell
2012-02-22 11:36 ` andrzej zaborowski
2012-02-22 12:00 ` Peter Maydell
2012-02-22 12:13 ` andrzej zaborowski
2012-02-22 12:48 ` Peter Maydell
2012-02-22 12:56 ` andrzej zaborowski
2012-02-22 13:32 ` Mitsyanko Igor [this message]
2012-02-22 13:56 ` Juan Quintela
2012-02-22 12:26 ` Mitsyanko Igor
2012-02-22 12:48 ` andrzej zaborowski
2012-02-22 13:30 ` Mitsyanko Igor
2012-02-22 10:15 ` [Qemu-devel] [PATCH 4/5] vmstate: refactor and move VMSTATE_UINTTL* macro Igor Mitsyanko
2012-02-22 14:00 ` Juan Quintela
2012-02-22 10:15 ` [Qemu-devel] [PATCH 5/5] vmstate: introduce get_bufsize entry in VMStateField Igor Mitsyanko
2012-02-22 11:26 ` [Qemu-devel] [PATCH 0/5] VMState cleanups Peter Maydell
2012-02-22 12:01 ` Mitsyanko Igor
2012-02-22 12:49 ` Andreas Färber
2012-02-22 12:50 ` Peter Maydell
2012-02-22 14:02 ` Juan Quintela
2012-02-22 15:37 ` Andreas Färber
2012-02-22 15:42 ` Peter Maydell
2012-02-22 16:04 ` Andreas Färber
2012-02-22 16:09 ` Peter Maydell
2012-02-22 23:41 ` Alexander Graf
2012-02-23 13:52 ` Juan Quintela
2012-02-22 12:06 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F44EE77.7080505@samsung.com \
--to=i.mitsyanko@samsung.com \
--cc=afaerber@suse.de \
--cc=balrogg@gmail.com \
--cc=d.solodkiy@samsung.com \
--cc=e.voevodin@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=m.kozlov@samsung.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.