1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 08:41:47 -07:00
Commit graph

535 commits

Author SHA1 Message Date
Richard Kistruck
74ff7d56bc Mps br/padding: make arenapoll do lots of tracepolls if required, to catch up after fillmutatorsize jumps by > 64kib (job002205)
Changes:
  - separate ArenaPoll and ArenaStep code paths;
  - simplify ArenaPoll;
  - loop calling TracePoll to catch-up;
  zcoll: 100MB is a more sensible arena size than 0.5 MB
Warning: barely "experimental" code quality, omitting the following necessities:
  - consideration of interactions with ArenaStep,
  - re-engineering of ArenaPoll and friends.

Copied from Perforce
 Change: 169814
 ServerID: perforce.ravenbrook.com
2010-02-12 14:16:53 +00:00
Richard Kistruck
6c29372e90 Mps br/padding exp-168778: amclargesegpages = 8 again.
(Also: report value of AMCLargeSegPAGES in AMCTraceEnd_pageret diag output).

Copied from Perforce
 Change: 168778
 ServerID: perforce.ravenbrook.com
2009-09-28 15:02:46 +01:00
Richard Kistruck
c381db4ced Mps br/padding exp-168764: for testing, turn off amc lsp, by setting amclargesegpages to 1<<18 * 4k pages => segs < 1gib are still 'not large'
Copied from Perforce
 Change: 168764
 ServerID: perforce.ravenbrook.com
2009-09-25 17:00:52 +01:00
Richard Kistruck
f0dbf2a41b Mps br/padding: job002148: drop mps_lib_callback_register from w3gen.def, and put it in new file mpslibcb.def, used only when building the mps dll (rule in commpost.nmk) which contains the mpslibcb stuff. correct expgen.sh accordingly (even though it's not working). so mps-fns.def (produced by w3build.bat by copying w3gen.def) is now correct for configura to use to re-export mps functions static linked into a larger executable, and mpsdy.dll still correctly exports the mps_lib_callback_register function.
Copied from Perforce
 Change: 168763
 ServerID: perforce.ravenbrook.com
2009-09-25 15:08:55 +01:00
Richard Kistruck
8f051c4a67 Mps br/padding zcoll.c: (fix build on w3i3*) rename argument/variable "small" as "small_ref", because the name "small" is already in use by the compiler or a windows header file.
Copied from Perforce
 Change: 168761
 ServerID: perforce.ravenbrook.com
2009-09-25 13:55:12 +01:00
Richard Kistruck
99c93807ba Mps br/padding amc lsp: rename pagespersegmediumlimit as amclargesegpages, and make it a define in config.h. corrections in des/poolamc.
Copied from Perforce
 Change: 168704
 ServerID: perforce.ravenbrook.com
2009-09-18 16:15:50 +01:00
Richard Kistruck
f2da06ca25 Mps br/padding amctraceend_pageret: add srm and srl = segments retained medium & large
Copied from Perforce
 Change: 168689
 ServerID: perforce.ravenbrook.com
2009-09-17 17:20:16 +01:00
Richard Kistruck
68c752a037 Mps br/padding:
poolamc.c tidy up:
  neater implementation of obj1pip (amcReclaimNailed)
  neater implementation of amcResetTraceIdStats -- no need for a function any more
  delete lots of obsolete temporary diagnostic (superseded by AMCTraceEnd_pageret)
  a few more avers (especially on buffer empty)
also revert temporary diagnostic changes in arena.c, config.h, diag.c, global.c
diag.c: fix diag-buffer at 100 screenfuls (200000 chars).
zcoll.c: reinstate Make 50000 with occasional big objs.

Copied from Perforce
 Change: 168688
 ServerID: perforce.ravenbrook.com
2009-09-17 16:59:39 +01:00
Richard Kistruck
43b66f9b13 mps br/padding: some pooltraceend() odds and ends:
mpmst.h: (comments only) clarify: after all reclaims
   pool.c: PoolClassCheck: FUNCHECK(class->traceEnd)
   pooln.c: traceEnd method in null pool class

Copied from Perforce
 Change: 168687
 ServerID: perforce.ravenbrook.com
2009-09-17 15:38:48 +01:00
Richard Kistruck
84c078b580 Mps br/padding poolamc: rename largeseg as pagespersegmediumlimit
Copied from Perforce
 Change: 168663
 ServerID: perforce.ravenbrook.com
2009-09-14 17:22:45 +01:00
Richard Kistruck
8f7d39135d Mps br/padding amctraceend_pageret: only output if pret >= pretmin, currently 100 pages.
Also: say page size and pRetMin in diags; more AVERs

Copied from Perforce
 Change: 168614
 ServerID: perforce.ravenbrook.com
2009-09-09 17:00:28 +01:00
Richard Kistruck
eb73827970 Mps br/padding zcoll.c: (remove hack: revert change zcoll.c168574)
Copied from Perforce
 Change: 168575
 ServerID: perforce.ravenbrook.com

GitHub-reference: https://github.com/Ravenbrook/mps/issues/8
2009-09-04 16:53:52 +01:00
Richard Kistruck
3e59401305 Mps br/padding zcoll.c: (hack to verify that prlr in amctraceend_pageret diag is correctly detecting pages of large segs by a rest-obj ref)
Copied from Perforce
 Change: 168574
 ServerID: perforce.ravenbrook.com
2009-09-04 16:51:11 +01:00
Richard Kistruck
5ccbb6a909 Mps br/padding amctraceend: rename pcmx as scm (= insurance cost avoided, upper bound); add scl (= insurance cost paid, upper bound); better comments; use poolalignment accessor
Copied from Perforce
 Change: 168573
 ServerID: perforce.ravenbrook.com
2009-09-04 16:39:19 +01:00
Richard Kistruck
db150c5588 Mps br/padding: example of an "emergency storm" -- cascading emergency traces -- from mpsicv.
Copied from Perforce
 Change: 168571
 ServerID: perforce.ravenbrook.com
2009-09-04 16:05:19 +01:00
Richard Kistruck
9a4c8e0335 Mps br/padding poolamc: (tidy) avoid diag-only variable outside diag macro in amctraceend
Copied from Perforce
 Change: 168564
 ServerID: perforce.ravenbrook.com
2009-09-03 17:40:17 +01:00
Richard Kistruck
efbefd8b66 Mps br/padding poolamc: simplify amcreclaimnailed accounting to use preservedinplacecount for segfree decision and obj1 statistics, instead of bool emptyseg
Copied from Perforce
 Change: 168563
 ServerID: perforce.ravenbrook.com
2009-09-03 17:35:38 +01:00
Richard Kistruck
24594df596 Mps br/padding poolamc: pageretstruct -- page-based diags about page retention,
emitted as diag AMCTraceEnd_pageret.

Copied from Perforce
 Change: 168562
 ServerID: perforce.ravenbrook.com
2009-09-03 17:17:50 +01:00
Richard Kistruck
754ab483ef Mps br/padding zcoll: fix round-up bug, ugly logic, and lack of comments in makething() in zcoll.c
Copied from Perforce
 Change: 168560
 ServerID: perforce.ravenbrook.com
2009-09-02 16:53:49 +01:00
Richard Kistruck
f79fda6082 Mps br/padding zcoll: fix root_table bug (this development branch only)
(introduced in //info.ravenbrook.com/project/mps/branch/2009-03-31/padding/code/zcoll.chttps://github.com/Ravenbrook/mps/issues/4, changelist 168451)
Now that we have two root tables -- Ambig & Exact -- we had better store them in two separate variables!  D'oh.
Bug: single variable "root_table" was used for Ambig, and then re-used for Exact.  On clear up, only Exact was mps_root-destroyed, and leaving Ambig still around at mps_arena_destroy.  In .variety.ci, after ControlFinish, a CHECKL(RingCheck(&arenaGlobals->rootRing)); tries to access the undestoryed root, even though the ControlPool has been unmapped.  This causes seg fault.  GDB works fine to show this, with bt.
Fix: two vars; call mps_root_destroy on each.

Copied from Perforce
 Change: 168533
 ServerID: perforce.ravenbrook.com
2009-08-28 17:36:59 +01:00
Richard Kistruck
6465ba2828 Mps br/padding: lsp tweaks and diag
zcoll:
  - parameterize BigdropSmall for big-obj size and small-obj ref-type, eg "BigdropSmall(big 28000, small A)"
  - Park, to avoid all those minor collections.  Explanatory comments.
poolamc.c:
  - diags: AMCTraceEnd, AMCTraceEnd_perc (new), AMCTraceEnd_pad_med (new),
  - AMCTraceEnd: c Segs/Pages Whiten/Reclaim, cPagesRet(ained)
  - AMCTraceEnd_perc: percentage of condemned pages retained by ambig refs
  - AMCTraceEnd_pad_med: over-detailed calculations of Gain & Loss for Medium segs,
    requiring knowledge of size of obj1 in each seg.
diag.c:
  - Just show AMCTraceEnd_perc and AMCTraceEnd_pad_med, for zcoll/BigdropSmall's purposes.
Note: poolamc.c now has several episodes of experimental diagnostic in it.
It's time to re-baseline it from an un-hacked version.

Copied from Perforce
 Change: 168512
 ServerID: perforce.ravenbrook.com
2009-08-26 17:34:56 +01:00
Richard Kistruck
280e956165 Mps br/padding poolamc.c: amcstruct stores per-traceid statistics
Currently: whitenCount & reclaimCount, for diag at AMCTraceEnd.
(These aren't interesting in themselves; next task: calculate more interesting per-trace stats).

Copied from Perforce
 Change: 168490
 ServerID: perforce.ravenbrook.com
2009-08-21 17:59:48 +01:00
Richard Kistruck
4fbe1238af Mps br/padding: new pooltraceendmethod: do end-of-trace work
Tracer calls PoolTraceEnd() when the trace is TraceFINISHED.
 AbstractPoolClass uses PoolTrivTraceEnd -- a NOOP. [mpm.h, mpmst.h, mpmtypes.h, pool.c, poolabs.c]
 AMC overrides with AMCTraceEnd, to emit diagnostic on how well the trace went! [poolamc.c]

Copied from Perforce
 Change: 168478
 ServerID: perforce.ravenbrook.com
2009-08-20 17:44:16 +01:00
Richard Kistruck
6124ef6377 Mps br/padding zcoll.c: change bigsmall() test to bigdropsmallambig() --
creates a big object and drops the ref to it, followed by a small object and keeps an ambig ref to it (to nail the AMCSeg it is in).
Loops 100 times.  This is for testing job001811 changes.

Copied from Perforce
 Change: 168451
 ServerID: perforce.ravenbrook.com
2009-08-18 17:14:19 +01:00
Richard Kistruck
391a33b7b7 Mps br/padding diag: make globalsdescribe only call pooldescribe for amc, please
Copied from Perforce
 Change: 168357
 ServerID: perforce.ravenbrook.com
2009-07-24 17:03:59 +01:00
Richard Kistruck
68408e5410 Mps br/padding: oops, undo accidental submit (in changelist 167809) of local-only modifications to xci3gc.gmk
Copied from Perforce
 Change: 167810
 ServerID: perforce.ravenbrook.com
2009-04-17 17:49:26 +01:00
Richard Kistruck
ffdbba8916 Mps br/padding diagsystem: diag > buf? set flag, truncate, force output
(instead of asserting)

Copied from Perforce
 Change: 167809
 ServerID: perforce.ravenbrook.com
2009-04-17 17:45:27 +01:00
Richard Kistruck
2d29a41b67 Mps br.padding: per-seg padstats; report poolsum- totals in amcdescribe.
Copied from Perforce
 Change: 167808
 ServerID: perforce.ravenbrook.com
2009-04-17 17:09:46 +01:00
Richard Kistruck
1811bafa10 Mps br/padding poolamc.c: (comments only) better comments on amcsegstruct
Copied from Perforce
 Change: 167793
 ServerID: perforce.ravenbrook.com
2009-04-16 11:24:43 +01:00
Richard Kistruck
ae056013ed Mps br/padding: diagnostics that show large-segment-padding in action.
zcoll.c: BigSmall() command -- creates small, then big, then small object.
poolamc.c: AMCDescribe(): output AMC Seg maps, showing single big object -- a pad -- at end of large-segment.
arena/config/diag: allow output of AMC Seg maps.

Copied from Perforce
 Change: 167763
 ServerID: perforce.ravenbrook.com
2009-04-09 16:01:21 +01:00
Richard Kistruck
9763512ab3 Mps br/padding poolamc.c: change amcbufferfill, so that for large requests (> 8 arenaaligns) it gives only requested size; pad the rest. see job001811. the number 8 is provisional...
Copied from Perforce
 Change: 167759
 ServerID: perforce.ravenbrook.com
2009-04-08 16:04:09 +01:00
Richard Kistruck
9b41313a7a Mps br/padding exp-167727
Copied from Perforce
 Change: 167727
 ServerID: perforce.ravenbrook.com
2009-04-02 18:36:50 +01:00
Richard Kistruck
4acbadd6e2 Mps br/padding: more diagnostic for how padding survives a collection.
More diag:
  - new traceSetSignalEmergency;
  - new AMCFix_amcSegCreateNailboard and AMCHeaderFix_amcSegCreateNailboard
    (note: the other, unreported, route to becoming boarded is because of a (mutator) buffer);
  - in traces: show SegBase and zone;
   - in TraceStart: show genZoneSets;
   - in amcReclaimNailed: show cbpip and cbpad.
 zcoll.c:
   - sizemethod 1 to Make command: occasionally makes >1MiB objects;
   - declare root_table all MPS_RANK_AMBIG.

Copied from Perforce
 Change: 167726
 ServerID: perforce.ravenbrook.com
2009-04-02 18:29:10 +01:00
Richard Kistruck
125e02aa75 Mps br/padding exp-167703
Copied from Perforce
 Change: 167703
 ServerID: perforce.ravenbrook.com
2009-04-01 19:05:29 +01:00
Richard Kistruck
46b4a43310 Mps br/padding diag.c: show some tracestart diag as well (because, res, com, alignment)
Copied from Perforce
 Change: 167702
 ServerID: perforce.ravenbrook.com
2009-04-01 19:03:27 +01:00
Richard Kistruck
d6842e1e40 Mps br/padding: exp-167699
Copied from Perforce
 Change: 167699
 ServerID: perforce.ravenbrook.com
2009-04-01 18:04:30 +01:00
Richard Kistruck
bd4ec9d031 Mps br/padding poolamc.c: (char) casts needed for vc6.0 compiler on platform.w3i3mv
Copied from Perforce
 Change: 167698
 ServerID: perforce.ravenbrook.com
2009-04-01 17:52:55 +01:00
Richard Kistruck
5762b1d33e Mps br/padding poolamc.c: (char) casts needed for vc6.0 compiler on platform.w3i3mv
Copied from Perforce
 Change: 167697
 ServerID: perforce.ravenbrook.com
2009-04-01 17:48:49 +01:00
Richard Kistruck
cb58df57a7 Mps br/padding poolamc.c: diags for condemn and reclaim of big segs (>= 1mib)
Copied from Perforce
 Change: 167696
 ServerID: perforce.ravenbrook.com
2009-04-01 17:36:58 +01:00
Richard Kistruck
af4feae9c0 Mps br/padding poolamc.c: diags for condemn and reclaim of big segs (> 1mib)
Copied from Perforce
 Change: 167695
 ServerID: perforce.ravenbrook.com
2009-04-01 17:34:31 +01:00
Richard Kistruck
81bd8efe1b Mps br/movalot xci3gc.gmk: [temporary: uninvestigated] add -mfpmath=387 because without it mpsicv gives a segv! bizarre. this is with an iphone-derived xcode install. perhaps that's why.
Copied from Perforce
 Change: 167645
 ServerID: perforce.ravenbrook.com
2009-03-25 17:46:05 +00:00
Richard Kistruck
2fdf069a4e Mps br/movalot zumr.c: explicitly manually check that colleciton caused object to move, because ra (access stale unmanaged ref) does not seem to cause a fault on xci3gc.
Copied from Perforce
 Change: 167644
 ServerID: perforce.ravenbrook.com
2009-03-25 17:43:33 +00:00
Richard Kistruck
b6fb536389 Mps br/movalot plan
Copied from Perforce
 Change: 167643
 ServerID: perforce.ravenbrook.com
2009-03-25 17:25:58 +00:00
Richard Kistruck
6dd3183840 Mps br/movalot zumr.c: cut out unused code, simple as possible
Copied from Perforce
 Change: 167437
 ServerID: perforce.ravenbrook.com
2009-02-20 14:33:21 +00:00
Richard Kistruck
a41cba990f Mps br/movalot zumr.c: use strncmp for script parsing
Copied from Perforce
 Change: 167406
 ServerID: perforce.ravenbrook.com
2009-02-17 16:53:02 +00:00
Richard Kistruck
d26ddf4584 Mps br/movalot zumr: z(=test) for unmanaged references, the faults they cause, and how the mps can help detect them.
Copied from Perforce
 Change: 167405
 ServerID: perforce.ravenbrook.com
2009-02-17 16:31:15 +00:00
Richard Kistruck
488b94d776 mps br/movalot zumr.c (integ from zcoll.c): oops, need to (re-)initialise myroot array for each script, before declaring it a root.
Copied from Perforce
 Change: 167404
 ServerID: perforce.ravenbrook.com
2009-02-17 16:30:20 +00:00
Richard Kistruck
48070f2488 mps br/movalot zmess.c, zcoll.c (integ from master): oops, need to (re-)initialise myroot array for each script, before declaring it a root.
Copied from Perforce
 Change: 167403
 ServerID: perforce.ravenbrook.com
2009-02-17 16:26:08 +00:00
Richard Kistruck
424d63180a Mps master zmess.c, zcoll.c (integ from br/timing): oops, need to (re-)initialise myroot array for each script, before declaring it a root.
Copied from Perforce
 Change: 167402
 ServerID: perforce.ravenbrook.com
2009-02-17 16:21:25 +00:00
Richard Kistruck
95e88e9584 Mps br/timing zcoll.c: oops, need to (re-)initialise myroot array for each script, before declaring it a root (integ from zmess.c).
Copied from Perforce
 Change: 167400
 ServerID: perforce.ravenbrook.com
2009-02-17 16:15:59 +00:00