All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] large memory requirements for translate.c a barrier
@ 2013-03-15 19:21 Todd T. Fries
  2013-03-16  8:14 ` Paolo Bonzini
  2013-03-19 15:18 ` Andreas Färber
  0 siblings, 2 replies; 11+ messages in thread
From: Todd T. Fries @ 2013-03-15 19:21 UTC (permalink / raw)
  To: qemu-devel

  PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
28818 todd      64    0 1142M   53M onproc/0  -         2:01 17.24% cc1

For systems with lower limits on user process memory, this prevents things
from building.

For systems with less physical ram, this presents lots of swapping just to
build the source files.

Is there any hints or hope of breaking translate.c up into a smaller file?

Thanks,
-- 
Todd Fries .. todd@fries.net

 ____________________________________________
|                                            \  1.636.410.0632 (voice)
| Free Daemon Consulting, LLC                \  1.405.227.9094 (voice)
| http://FreeDaemonConsulting.com            \  1.866.792.3418 (FAX)
| PO Box 16169, Oklahoma City, OK 73113      \  sip:freedaemon@ekiga.net
| "..in support of free software solutions." \  sip:4052279094@ekiga.net
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                                                 
              37E7 D3EB 74D0 8D66 A68D  B866 0326 204E 3F42 004A
                        http://todd.fries.net/pgp.txt

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-15 19:21 [Qemu-devel] large memory requirements for translate.c a barrier Todd T. Fries
@ 2013-03-16  8:14 ` Paolo Bonzini
  2013-03-19 15:05   ` qemu-devel
  2013-03-21  7:53   ` qemu-devel
  2013-03-19 15:18 ` Andreas Färber
  1 sibling, 2 replies; 11+ messages in thread
From: Paolo Bonzini @ 2013-03-16  8:14 UTC (permalink / raw)
  To: todd; +Cc: qemu-devel

Il 15/03/2013 20:21, Todd T. Fries ha scritto:
>   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
> 28818 todd      64    0 1142M   53M onproc/0  -         2:01 17.24% cc1
> 
> For systems with lower limits on user process memory, this prevents things
> from building.
> 
> For systems with less physical ram, this presents lots of swapping just to
> build the source files.
> 
> Is there any hints or hope of breaking translate.c up into a smaller file?

It's a GCC bug.  We have worked around it in recent versions of QEMU;
what version are you trying to compile?

You can compile that file with "-O2 -fno-gcse".

Paolo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-16  8:14 ` Paolo Bonzini
@ 2013-03-19 15:05   ` qemu-devel
  2013-03-21  7:53   ` qemu-devel
  1 sibling, 0 replies; 11+ messages in thread
From: qemu-devel @ 2013-03-19 15:05 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

Penned by Paolo Bonzini on 20130316  3:14.29, we have:
| Il 15/03/2013 20:21, Todd T. Fries ha scritto:
| >   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
| > 28818 todd      64    0 1142M   53M onproc/0  -         2:01 17.24% cc1
| > 
| > For systems with lower limits on user process memory, this prevents things
| > from building.
| > 
| > For systems with less physical ram, this presents lots of swapping just to
| > build the source files.
| > 
| > Is there any hints or hope of breaking translate.c up into a smaller file?
| 
| It's a GCC bug.  We have worked around it in recent versions of QEMU;
| what version are you trying to compile?

I'm using bisect to find a runtime behavior bug (OpenBSD/amd64 current's cd53.iso segv's in
userland) that showed up since 1.4.0 release.  So understandably I'm building lots of versions
and not able to stick with current for the duration of the bisection.

| You can compile that file with "-O2 -fno-gcse".

Awesome, I'll just do a global -fno-gcse and hope that doesn't effect the runtime bug I've
encountered to speed my compile times ;-)

Thanks,
-- 
Todd Fries .. todd@fries.net

 ____________________________________________
|                                            \  1.636.410.0632 (voice)
| Free Daemon Consulting, LLC                \  1.405.227.9094 (voice)
| http://FreeDaemonConsulting.com            \  1.866.792.3418 (FAX)
| PO Box 16169, Oklahoma City, OK 73113      \  sip:freedaemon@ekiga.net
| "..in support of free software solutions." \  sip:4052279094@ekiga.net
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                                                 
              37E7 D3EB 74D0 8D66 A68D  B866 0326 204E 3F42 004A
                        http://todd.fries.net/pgp.txt

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-15 19:21 [Qemu-devel] large memory requirements for translate.c a barrier Todd T. Fries
  2013-03-16  8:14 ` Paolo Bonzini
@ 2013-03-19 15:18 ` Andreas Färber
  1 sibling, 0 replies; 11+ messages in thread
From: Andreas Färber @ 2013-03-19 15:18 UTC (permalink / raw)
  To: todd; +Cc: Alexander Graf, Paolo Bonzini, qemu-ppc, qemu-devel

Am 15.03.2013 20:21, schrieb Todd T. Fries:
> Is there any hints or hope of breaking translate.c up into a smaller file?

You don't specify which version you're talking about (git?) and don't
mention which translate.c file either.

The longest-building one I am aware of was target-ppc/translate.c, and I
have just recently split some code out of it to reduce its size.

But this is an Open Source project, so you too can look at the code and
make suggestions of how to split, e.g., target-ppc/translate_init.c off
from target-ppc/translate.c or even better send patches for improvement.

Short of that, you can configure with --target-list= to only build the
targets you actually need.

Regards,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-16  8:14 ` Paolo Bonzini
  2013-03-19 15:05   ` qemu-devel
@ 2013-03-21  7:53   ` qemu-devel
  2013-03-21  8:25     ` Paolo Bonzini
  1 sibling, 1 reply; 11+ messages in thread
From: qemu-devel @ 2013-03-21  7:53 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=unknown-8bit, Size: 2813 bytes --]

Penned by Paolo Bonzini on 20130316  3:14.29, we have:
| Il 15/03/2013 20:21, Todd T. Fries ha scritto:
| >   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
| > 28818 todd      64    0 1142M   53M onproc/0  -         2:01 17.24% cc1
| > 
| > For systems with lower limits on user process memory, this prevents things
| > from building.
| > 
| > For systems with less physical ram, this presents lots of swapping just to
| > build the source files.
| > 
| > Is there any hints or hope of breaking translate.c up into a smaller file?
| 
| It's a GCC bug.  We have worked around it in recent versions of QEMU;
| what version are you trying to compile?
| 
| You can compile that file with "-O2 -fno-gcse".
| 
| Paolo

I don't note a huge improvement:

load averages:  6.74,  6.23,  5.17                    leveno.fries.net 02:42:23
201 processes: 200 idle, 1 on processor
CPU0 states:  0.4% user,  0.0% nice, 33.3% system, 37.1% interrupt, 29.1% idle
CPU1 states:  0.2% user,  0.0% nice, 64.5% system,  0.0% interrupt, 35.3% idle
Memory: Real: 359M/907M act/tot Free: 80M Cache: 46M Swap: 1076M/4095M
Seconds to delay: 
  PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
19820 todd      -5    0 1116M   38M sleep/1   biowait   2:54 14.75% cc1

todd@leveno/pE ~¦239$ ps awwwx | grep cc1
19820 pz  D+      2:49.61 /usr/lib/gcc-lib/i386-unknown-openbsd5.3/4.2.1/cc1 -fpreprocessed /home/todd/.ccache/tmp/translate.tmp.leveno.fries.net.1478.i -quiet -dumpbase translate.tmp.leveno.fries.net.1478.i -m32 -auxbase-strip /home/todd/.ccache/6/2/648c89832d69fca8ff8953cca44f28-1086936.o.tmp.leveno.fries.net.1478 -g -O2 -Wstrict-prototypes -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -Wno-redundant-decls -Wendif-labels -Wmissing-include-dirs -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wold-style-definition -fPIE -fno-strict-aliasing -fno-gcse -fstack-protector-all -o /home/todd/.tmp/cc1YGXzU.s

Reading specs from /usr/lib/gcc-lib/i386-unknown-openbsd5.3/4.2.1/specs
Target: i386-unknown-openbsd5.3
Configured with: OpenBSD/i386 system compiler
Thread model: posix
gcc version 4.2.1 20070719 
-- 
Todd Fries .. todd@fries.net

 ____________________________________________
|                                            \  1.636.410.0632 (voice)
| Free Daemon Consulting, LLC                \  1.405.227.9094 (voice)
| http://FreeDaemonConsulting.com            \  1.866.792.3418 (FAX)
| PO Box 16169, Oklahoma City, OK 73113      \  sip:freedaemon@ekiga.net
| "..in support of free software solutions." \  sip:4052279094@ekiga.net
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                                                 
              37E7 D3EB 74D0 8D66 A68D  B866 0326 204E 3F42 004A
                        http://todd.fries.net/pgp.txt

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-21  7:53   ` qemu-devel
@ 2013-03-21  8:25     ` Paolo Bonzini
  2013-03-22  7:08       ` qemu-devel
  0 siblings, 1 reply; 11+ messages in thread
From: Paolo Bonzini @ 2013-03-21  8:25 UTC (permalink / raw)
  To: todd; +Cc: qemu-devel

Il 21/03/2013 08:53, qemu-devel@email.fries.net ha scritto:
> load averages:  6.74,  6.23,  5.17                    leveno.fries.net 02:42:23
> 201 processes: 200 idle, 1 on processor
> CPU0 states:  0.4% user,  0.0% nice, 33.3% system, 37.1% interrupt, 29.1% idle
> CPU1 states:  0.2% user,  0.0% nice, 64.5% system,  0.0% interrupt, 35.3% idle
> Memory: Real: 359M/907M act/tot Free: 80M Cache: 46M Swap: 1076M/4095M
> Seconds to delay: 
>   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
> 19820 todd      -5    0 1116M   38M sleep/1   biowait   2:54 14.75% cc1
> 
> todd@leveno/pE ~�239$ ps awwwx | grep cc1
> 19820 pz  D+      2:49.61 /usr/lib/gcc-lib/i386-unknown-openbsd5.3/4.2.1/cc1 -fpreprocessed /home/todd/.ccache/tmp/translate.tmp.leveno.fries.net.1478.i -quiet -dumpbase translate.tmp.leveno.fries.net.1478.i -m32 -auxbase-strip /home/todd/.ccache/6/2/648c89832d69fca8ff8953cca44f28-1086936.o.tmp.leveno.fries.net.1478 -g -O2 -Wstrict-prototypes -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -Wno-redundant-decls -Wendif-labels -Wmissing-include-dirs -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wold-style-definition -fPIE -fno-strict-aliasing -fno-gcse -fstack-protector-all -o /home/todd/.tmp/cc1YGXzU.s
> 
> Reading specs from /usr/lib/gcc-lib/i386-unknown-openbsd5.3/4.2.1/specs
> Target: i386-unknown-openbsd5.3
> Configured with: OpenBSD/i386 system compiler
> Thread model: posix
> gcc version 4.2.1 20070719 
> 

That's an older GCC than the one I was using.  For you it may be
-fno-var-tracking.

Paolo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-21  8:25     ` Paolo Bonzini
@ 2013-03-22  7:08       ` qemu-devel
  2013-03-22  7:30         ` 陳韋任 (Wei-Ren Chen)
  2013-03-22  9:34         ` Paolo Bonzini
  0 siblings, 2 replies; 11+ messages in thread
From: qemu-devel @ 2013-03-22  7:08 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

Penned by Paolo Bonzini on 20130321  3:25.51, we have:
| Il 21/03/2013 08:53, qemu-devel@email.fries.net ha scritto:
| > load averages:  6.74,  6.23,  5.17                    leveno.fries.net 02:42:23
| > 201 processes: 200 idle, 1 on processor
| > CPU0 states:  0.4% user,  0.0% nice, 33.3% system, 37.1% interrupt, 29.1% idle
| > CPU1 states:  0.2% user,  0.0% nice, 64.5% system,  0.0% interrupt, 35.3% idle
| > Memory: Real: 359M/907M act/tot Free: 80M Cache: 46M Swap: 1076M/4095M
| > Seconds to delay: 
| >   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
| > 19820 todd      -5    0 1116M   38M sleep/1   biowait   2:54 14.75% cc1
| > 
| > todd@leveno/pE ~???239$ ps awwwx | grep cc1
| > 19820 pz  D+      2:49.61 /usr/lib/gcc-lib/i386-unknown-openbsd5.3/4.2.1/cc1 -fpreprocessed /home/todd/.ccache/tmp/translate.tmp.leveno.fries.net.1478.i -quiet -dumpbase translate.tmp.leveno.fries.net.1478.i -m32 -auxbase-strip /home/todd/.ccache/6/2/648c89832d69fca8ff8953cca44f28-1086936.o.tmp.leveno.fries.net.1478 -g -O2 -Wstrict-prototypes -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -Wno-redundant-decls -Wendif-labels -Wmissing-include-dirs -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wold-style-definition -fPIE -fno-strict-aliasing -fno-gcse -fstack-protector-all -o /home/todd/.tmp/cc1YGXzU.s
| > 
| > Reading specs from /usr/lib/gcc-lib/i386-unknown-openbsd5.3/4.2.1/specs
| > Target: i386-unknown-openbsd5.3
| > Configured with: OpenBSD/i386 system compiler
| > Thread model: posix
| > gcc version 4.2.1 20070719 
| > 
| 
| That's an older GCC than the one I was using.  For you it may be
| -fno-var-tracking.

Still no joy:

  PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
21212 todd      -5   20 1142M  118M sleep/0   -         1:03 37.30% cc1

cc -I. -I/home/todd/git/sw/3rdParty/qemu -I/home/todd/git/sw/3rdParty/qemu/include -I/home/todd/git/sw/3rdParty/qemu/tcg -I/home/todd/git/sw/3rdParty/qemu/tcg/i386  -fPIE -DPIE -m32 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -I/usr/local/include -I/usr/X11R6/include -Wno-redundant-decls -DTIME_MAX=INT_MAX -fno-gcse -fno-var-tracking  -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wold-style-definition  -I/usr/local/include/libpng -I/usr/X11R6/include/pixman-1 -DHAS_AUDIO -DHAS_AUDIO_CHOICE  -I/home/todd/git/sw/3rdParty/qemu/target-i386 -Itarget-i386 -I.. -I/home/todd/git/sw/3rdParty/qemu/target-i386 -DNEED_CPU_H -I/home/todd/git/sw/3rdParty/qemu/include -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -MMD -MP -MT target-i386/kvm-stub.o -MF target-i386/kvm-stub.d -O2 -D_FORTIFY_SOURCE=2 -g  -c -o target-i386/kvm-stub.o /home/todd/git/sw/3rdParty/qemu/target-i386/kvm-stub.c


| 
| Paolo

-- 
Todd Fries .. todd@fries.net

 ____________________________________________
|                                            \  1.636.410.0632 (voice)
| Free Daemon Consulting, LLC                \  1.405.227.9094 (voice)
| http://FreeDaemonConsulting.com            \  1.866.792.3418 (FAX)
| PO Box 16169, Oklahoma City, OK 73113      \  sip:freedaemon@ekiga.net
| "..in support of free software solutions." \  sip:4052279094@ekiga.net
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                                                 
              37E7 D3EB 74D0 8D66 A68D  B866 0326 204E 3F42 004A
                        http://todd.fries.net/pgp.txt

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-22  7:08       ` qemu-devel
@ 2013-03-22  7:30         ` 陳韋任 (Wei-Ren Chen)
  2013-03-22 15:19           ` qemu-devel
  2013-03-22  9:34         ` Paolo Bonzini
  1 sibling, 1 reply; 11+ messages in thread
From: 陳韋任 (Wei-Ren Chen) @ 2013-03-22  7:30 UTC (permalink / raw)
  To: todd; +Cc: Paolo Bonzini, qemu-devel

> Still no joy:
> 
>   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
> 21212 todd      -5   20 1142M  118M sleep/0   -         1:03 37.30% cc1
> 
> cc -I. -I/home/todd/git/sw/3rdParty/qemu -I/home/todd/git/sw/3rdParty/qemu/include -I/home/todd/git/sw/3rdParty/qemu/tcg -I/home/todd/git/sw/3rdParty/qemu/tcg/i386  -fPIE -DPIE -m32 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -I/usr/local/include -I/usr/X11R6/include -Wno-redundant-decls -DTIME_MAX=INT_MAX -fno-gcse -fno-var-tracking  -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wold-style-definition  -I/usr/local/include/libpng -I/usr/X11R6/include/pixman-1 -DHAS_AUDIO -DHAS_AUDIO_CHOICE  -I/home/todd/git/sw/3rdParty/qemu/target-i386 -Itarget-i386 -I.. -I/home/todd/git/sw/3rdParty/qemu/target-i386 -DNEED_CPU_H -I/home/todd/git/sw/3rdParty/qemu/include -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -MMD -MP -MT target-i386/kvm-stub.o -MF target-i386/kvm-stub.d -O2 -D_FORTIFY_SOURCE=2 -g  -c -o target-i386/kvm-stub.o /home/todd/git/sw/3rdParty/qemu/target-i386/kvm-stub.c

  Is it possible to update your GCC, or try to use clang?

HTH,
chenwj

-- 
Wei-Ren Chen (陳韋任)
Computer Systems Lab, Institute of Information Science,
Academia Sinica, Taiwan (R.O.C.)
Tel:886-2-2788-3799 #1667
Homepage: http://people.cs.nctu.edu.tw/~chenwj

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-22  7:08       ` qemu-devel
  2013-03-22  7:30         ` 陳韋任 (Wei-Ren Chen)
@ 2013-03-22  9:34         ` Paolo Bonzini
  1 sibling, 0 replies; 11+ messages in thread
From: Paolo Bonzini @ 2013-03-22  9:34 UTC (permalink / raw)
  To: todd; +Cc: qemu-devel

Il 22/03/2013 08:08, qemu-devel@email.fries.net ha scritto:
> Penned by Paolo Bonzini on 20130321  3:25.51, we have:
> | Il 21/03/2013 08:53, qemu-devel@email.fries.net ha scritto:
> | > load averages:  6.74,  6.23,  5.17                    leveno.fries.net 02:42:23
> | > 201 processes: 200 idle, 1 on processor
> | > CPU0 states:  0.4% user,  0.0% nice, 33.3% system, 37.1% interrupt, 29.1% idle
> | > CPU1 states:  0.2% user,  0.0% nice, 64.5% system,  0.0% interrupt, 35.3% idle
> | > Memory: Real: 359M/907M act/tot Free: 80M Cache: 46M Swap: 1076M/4095M
> | > Seconds to delay: 
> | >   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
> | > 19820 todd      -5    0 1116M   38M sleep/1   biowait   2:54 14.75% cc1
> | > 
> | > todd@leveno/pE ~???239$ ps awwwx | grep cc1
> | > 19820 pz  D+      2:49.61 /usr/lib/gcc-lib/i386-unknown-openbsd5.3/4.2.1/cc1 -fpreprocessed /home/todd/.ccache/tmp/translate.tmp.leveno.fries.net.1478.i -quiet -dumpbase translate.tmp.leveno.fries.net.1478.i -m32 -auxbase-strip /home/todd/.ccache/6/2/648c89832d69fca8ff8953cca44f28-1086936.o.tmp.leveno.fries.net.1478 -g -O2 -Wstrict-prototypes -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -Wno-redundant-decls -Wendif-labels -Wmissing-include-dirs -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wold-style-definition -fPIE -fno-strict-aliasing -fno-gcse -fstack-protector-all -o /home/todd/.tmp/cc1YGXzU.s
> | > 
> | > Reading specs from /usr/lib/gcc-lib/i386-unknown-openbsd5.3/4.2.1/specs
> | > Target: i386-unknown-openbsd5.3
> | > Configured with: OpenBSD/i386 system compiler
> | > Thread model: posix
> | > gcc version 4.2.1 20070719 
> | > 
> | 
> | That's an older GCC than the one I was using.  For you it may be
> | -fno-var-tracking.
> 
> Still no joy:
> 
>   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
> 21212 todd      -5   20 1142M  118M sleep/0   -         1:03 37.30% cc1
> 
> cc -I. -I/home/todd/git/sw/3rdParty/qemu -I/home/todd/git/sw/3rdParty/qemu/include -I/home/todd/git/sw/3rdParty/qemu/tcg -I/home/todd/git/sw/3rdParty/qemu/tcg/i386  -fPIE -DPIE -m32 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -I/usr/local/include -I/usr/X11R6/include -Wno-redundant-decls -DTIME_MAX=INT_MAX -fno-gcse -fno-var-tracking  -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wold-style-definition  -I/usr/local/include/libpng -I/usr/X11R6/include/pixman-1 -DHAS_AUDIO -DHAS_AUDIO_CHOICE  -I/home/todd/git/sw/3rdParty/qemu/target-i386 -Itarget-i386 -I.. -I/home/todd/git/sw/3rdParty/qemu/target-i386 -DNEED_CPU_H -I/home/todd/git/sw/3rdParty/qemu/include -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -MMD -MP -MT target-i386/kvm-stub!
 .o -MF tar
get-i386/kvm-stub.d -O2 -D_FORTIFY_SOURCE=2 -g  -c -o target-i386/kvm-stub.o /home/todd/git/sw/3rdParty/qemu/target-i386/kvm-stub.c

Please try -fmem-report or -ftime-report and see where the time is spent.

Alternatively, just compile with -O1 or even -O0.

Paolo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-22  7:30         ` 陳韋任 (Wei-Ren Chen)
@ 2013-03-22 15:19           ` qemu-devel
  2013-03-22 15:28             ` Peter Maydell
  0 siblings, 1 reply; 11+ messages in thread
From: qemu-devel @ 2013-03-22 15:19 UTC (permalink / raw)
  To: ????????? (Wei-Ren Chen); +Cc: Paolo Bonzini, qemu-devel

Penned by ????????? (Wei-Ren Chen) on 20130322  2:30.14, we have:
| > Still no joy:
| > 
| >   PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
| > 21212 todd      -5   20 1142M  118M sleep/0   -         1:03 37.30% cc1
| > 
| > cc -I. -I/home/todd/git/sw/3rdParty/qemu -I/home/todd/git/sw/3rdParty/qemu/include -I/home/todd/git/sw/3rdParty/qemu/tcg -I/home/todd/git/sw/3rdParty/qemu/tcg/i386  -fPIE -DPIE -m32 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -I/usr/local/include -I/usr/X11R6/include -Wno-redundant-decls -DTIME_MAX=INT_MAX -fno-gcse -fno-var-tracking  -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wold-style-definition  -I/usr/local/include/libpng -I/usr/X11R6/include/pixman-1 -DHAS_AUDIO -DHAS_AUDIO_CHOICE  -I/home/todd/git/sw/3rdParty/qemu/target-i386 -Itarget-i386 -I.. -I/home/todd/git/sw/3rdParty/qemu/target-i386 -DNEED_CPU_H -I/home/todd/git/sw/3rdParty/qemu/include -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -MMD -MP -MT target-i386/kvm-stub.o -MF target-i386/kvm-stub.d -O2 -D_FORTIFY_SOURCE=2 -g  -c -o target-i386/kvm-stub.o /home/todd/git/sw/3rdParty/qemu/target-i386/kvm-stub.c
| 
|   Is it possible to update your GCC, or try to use clang?

OpenBSD is using the latest gcc that is not GPLv3 for license reasons for the
base os.

In ports there are newer versions of gcc for programs that require it to build,
and clang is available also.

It doesn't make sense to switch compilers because this does build, so I will
either find time to take a stab at moving things out of translate.c or deal
with the excessive memory this file takes to build per softmmu target before
I try using a compiler that is not what any other OpenBSD user is going to
be running qemu with.

Thanks,
-- 
Todd Fries .. todd@fries.net

 ____________________________________________
|                                            \  1.636.410.0632 (voice)
| Free Daemon Consulting, LLC                \  1.405.227.9094 (voice)
| http://FreeDaemonConsulting.com            \  1.866.792.3418 (FAX)
| PO Box 16169, Oklahoma City, OK 73113      \  sip:freedaemon@ekiga.net
| "..in support of free software solutions." \  sip:4052279094@ekiga.net
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                                                 
              37E7 D3EB 74D0 8D66 A68D  B866 0326 204E 3F42 004A
                        http://todd.fries.net/pgp.txt

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] large memory requirements for translate.c a barrier
  2013-03-22 15:19           ` qemu-devel
@ 2013-03-22 15:28             ` Peter Maydell
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-03-22 15:28 UTC (permalink / raw)
  To: todd; +Cc: Paolo Bonzini, qemu-devel, ????????? (Wei-Ren Chen)

On 22 March 2013 15:19,  <qemu-devel@email.fries.net> wrote:
> It doesn't make sense to switch compilers because this does build, so I will
> either find time to take a stab at moving things out of translate.c

Note that we've had problems with several different target-*/translate.c;
I think the problem is simply that gcc inlines a lot of the functions
of the main decoder loop and then finds that the resulting enormous
function triggers problems with optimisation passes that were accidentally
written to be O(n^2) in memory or CPU usage. So you may find you need
to restructure more than one target's translate.c code.

-- PMM

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-03-22 15:29 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-15 19:21 [Qemu-devel] large memory requirements for translate.c a barrier Todd T. Fries
2013-03-16  8:14 ` Paolo Bonzini
2013-03-19 15:05   ` qemu-devel
2013-03-21  7:53   ` qemu-devel
2013-03-21  8:25     ` Paolo Bonzini
2013-03-22  7:08       ` qemu-devel
2013-03-22  7:30         ` 陳韋任 (Wei-Ren Chen)
2013-03-22 15:19           ` qemu-devel
2013-03-22 15:28             ` Peter Maydell
2013-03-22  9:34         ` Paolo Bonzini
2013-03-19 15:18 ` Andreas Färber

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.