Hi!

Just a quick report regarding recovering from memory pressure.  This is
with gnumach-image-1.3.99-486-dbg 2:1.3.99.dfsg.git20120219-1.

During GCC testing, my system collapsed.  Unfortunately, there was no
farewell note found.  Re-running the offending (I suppose) test manually,
»[...]master.build/gcc/xgcc -B[...]/master.build/gcc/
-fno-diagnostics-show-caret -O2 -w -c -o limits-structnest.o
[...]/master/gcc/testsuite/gcc.c-torture/compile/limits-structnest.c«, I
see that it within its few seconds of run time it nearly completely sucks
up of what vmstat reports as free memory.  (Running it manually now,
there is no system crash, unfortunately (?).)  OK, then lets start two of
these in parallel; here is what happens after a few seconds:

    $ vmstat
    pagesize:       4096 
    size:           1005M
    free:            196K
    active:          331M
    inactive:        664M
    wired:          10.2M
    zero filled:    6474M
    reactivated:     960M
    pageins:        51.4M
    pageouts:        623M
    page faults:  2086694
    cow faults:     37881
    memobj hit ratio: 90%
    swap size:       954M
    swap free:       345M

Free memory dashed to the ground, and heavy swap usage.  After perhaps
half a minute the two processes finish, and the system completely
recovers, it seems:

    $ vmstat
    pagesize:       4096
    size:           1005M
    free:            983M
    active:         7380K
    inactive:       5572K
    wired:          9.87M
    zero filled:    6505M
    reactivated:     960M
    pageins:        56.5M
    pageouts:        624M
    page faults:  2099404
    cow faults:     38418
    memobj hit ratio: 90%
    swap size:       954M
    swap free:       923M

RUnning four in parallel, the system started heavy thrashing, I got some
error of sigpost (?) in the shell where I ran vmstat, which then froze, I
instructed another shell to kill the four GCC processes, three of which
got killed, then the screen session exploded.  Logging in anew, the
system has recovered again:

    $ vmstat
    pagesize:       4096 
    size:           1005M
    free:            953M
    active:         23.5M
    inactive:       16.7M
    wired:          11.8M
    zero filled:    7884M
    reactivated:    1922M
    pageins:        95.4M
    pageouts:        856M
    page faults:  2663565
    cow faults:     57758
    memobj hit ratio: 93%
    swap size:       954M
    swap free:       924M

Quite nice!  (Unfortunately that doesn't tell me why it hung during GCC
testing, though.)

While there have been changes "recently" to GCC's internal memory
management, I do not think these contribute to the test failure/system
crash, because the same pattern of using up nearly 1 GiB and then
finishing successfully is also seen when running the test with the
system's GCC 4.4/4.5/4.6 compilers.  And the test itself is as old as
2007.  Bad luck, probably.


Grüße,
 Thomas

Attachment: pgp3aS8DvBP4v.pgp
Description: PGP signature

Reply via email to