* [Qemu-devel] constant truncation warning in hw/pc.c for 32bit targets
@ 2008-09-28 12:44 Jindrich Makovicka
2008-09-28 13:52 ` Blue Swirl
0 siblings, 1 reply; 3+ messages in thread
From: Jindrich Makovicka @ 2008-09-28 12:44 UTC (permalink / raw)
To: qemu-devel
Hi,
for 32bit targets, the 0x100000000ULL start address of above-4G memory
is truncated to zero. IMO the code for above-4G allocation could be
#ifdef'ed only for 64 bit targets, as for 32bit it 1) miscompiles and
2) won't be used anyway:
Index: hw/pc.c
===================================================================
--- hw/pc.c (revision 5338)
+++ hw/pc.c (working copy)
@@ -747,7 +747,9 @@
BlockDriverState *fd[MAX_FD];
if (ram_size >= 0xe0000000 ) {
+#if TARGET_PHYS_ADDR_BITS == 64
above_4g_mem_size = ram_size - 0xe0000000;
+#endif
below_4g_mem_size = 0xe0000000;
} else {
below_4g_mem_size = ram_size;
@@ -798,6 +800,7 @@
below_4g_mem_size - 0x100000,
ram_addr);
+#if TARGET_PHYS_ADDR_BITS == 64
/* above 4giga memory allocation */
if (above_4g_mem_size > 0) {
ram_addr = qemu_ram_alloc(above_4g_mem_size);
@@ -805,6 +808,7 @@
above_4g_mem_size,
ram_addr);
}
+#endif
/* allocate VGA RAM */
Regards,
--
Jindrich Makovicka
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] constant truncation warning in hw/pc.c for 32bit targets
2008-09-28 12:44 [Qemu-devel] constant truncation warning in hw/pc.c for 32bit targets Jindrich Makovicka
@ 2008-09-28 13:52 ` Blue Swirl
2008-09-28 19:29 ` [Qemu-devel] " Jindrich Makovicka
0 siblings, 1 reply; 3+ messages in thread
From: Blue Swirl @ 2008-09-28 13:52 UTC (permalink / raw)
To: qemu-devel
On 9/28/08, Jindrich Makovicka <makovick@gmail.com> wrote:
> Hi,
>
> for 32bit targets, the 0x100000000ULL start address of above-4G memory
> is truncated to zero. IMO the code for above-4G allocation could be
> #ifdef'ed only for 64 bit targets, as for 32bit it 1) miscompiles and
> 2) won't be used anyway:
There are i386 systems with more than 4G of memory, so your patch is incorrect.
Now, if the code miscompiles there could be a problem somewhere else.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] Re: constant truncation warning in hw/pc.c for 32bit targets
2008-09-28 13:52 ` Blue Swirl
@ 2008-09-28 19:29 ` Jindrich Makovicka
0 siblings, 0 replies; 3+ messages in thread
From: Jindrich Makovicka @ 2008-09-28 19:29 UTC (permalink / raw)
To: qemu-devel
On Sun, 28 Sep 2008 16:52:22 +0300
"Blue Swirl" <blauwirbel@gmail.com> wrote:
> On 9/28/08, Jindrich Makovicka <makovick@gmail.com> wrote:
> > Hi,
> >
> > for 32bit targets, the 0x100000000ULL start address of above-4G
> > memory is truncated to zero. IMO the code for above-4G allocation
> > could be #ifdef'ed only for 64 bit targets, as for 32bit it 1)
> > miscompiles and 2) won't be used anyway:
>
> There are i386 systems with more than 4G of memory, so your patch is
> incorrect.
Yes, I know about PAE, but I assumed that when QEMU uses 32 bits for
a physical address (32bit guest on 32bit host) it will not support
more than 4 gigs.
> Now, if the code miscompiles there could be a problem somewhere else.
I meant that for a 32bit target, the physical address passed to
cpu_register_physical_memory will be zero instead of 4 gig as one
would expect because of the truncation.
I don't have a intimate knowledge of QEMU internals, but this warning
just looked a bit fishy to me :)
--
Jindrich Makovicka
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-09-28 19:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-28 12:44 [Qemu-devel] constant truncation warning in hw/pc.c for 32bit targets Jindrich Makovicka
2008-09-28 13:52 ` Blue Swirl
2008-09-28 19:29 ` [Qemu-devel] " Jindrich Makovicka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).