job003499
|
critical
|
The MPS issues list looks scary
|
job004158
|
essential
|
Register scanning approach is not reliable
|
job004166
|
essential
|
MPS Contributing agreement requires review and update
|
job000537
|
optional
|
Many design documents missing
|
job000549
|
optional
|
Blackening an AMS segment can break
|
job001092
|
optional
|
MPS is not integrated with public cool projects.
|
job001151
|
optional
|
Format methods can't look at other data
|
job001152
|
optional
|
The MPS can't be used to simulate a smaller machine
|
job001659
|
optional
|
Culprit analysis is too hard.
|
job001666
|
optional
|
No guarantee that all weak references to an object die together.
|
job001707
|
optional
|
VM Arena never shrinks a generation zone set preferences.
|
job003384
|
optional
|
Collector goes mad when low on address space
|
job003387
|
optional
|
Multiple arenas can corrupt telemetry stream
|
job003388
|
optional
|
telemetry system API can corrupt telemetry stream
|
job003439
|
optional
|
MPS is too hard to use
|
job003455
|
optional
|
Frequent ramps can mess up the ramping algorithm and cause performance problems
|
job003477
|
optional
|
MPS is hard to build and debug on Windows
|
job003505
|
optional
|
MPS incurs large overhead on barrier hits
|
job003523
|
optional
|
Accessing to weak tables on 64-bit causes them to be scanned.
|
job003532
|
optional
|
MPS kit fails to install shared libraries
|
job003644
|
optional
|
Reserve/commit protocol does not cope with exceptions
|
job003683
|
optional
|
Epoch number can wrap around on 32-bit platforms
|
job003755
|
optional
|
Telemetry tools not regularly tested
|
job003764
|
optional
|
Scanning rate is way too high
|
job003783
|
optional
|
ChainCondemnAuto condemns too many generations
|
job003790
|
optional
|
Segment descriptors could be more efficiently managed
|
job003796
|
optional
|
White segment lookup is slow
|
job003797
|
optional
|
AMC space is lost to pinning
|
job003798
|
optional
|
Tract tables are inflexible
|
job003799
|
optional
|
Incrementally collecting the nursery may waste time
|
job003815
|
optional
|
Freeing a page never destroys a chunk
|
job003832
|
optional
|
CVM memory debugging may be redundant
|
job003841
|
optional
|
Segs are not Exposed when AMSBlacken calls amsIterate
|
job003848
|
optional
|
Access violation in gcbench on Windows
|
job003921
|
optional
|
Write barrier may be harmful to performance
|
job003929
|
optional
|
mps_arena_step uses poor estimate of collection time
|
job003932
|
optional
|
Allocation frame documentation is unclear
|
job003942
|
optional
|
Possible hang in steptest
|
job003944
|
optional
|
Arena allocation policy may allocate in blacklisted zone
|
job003953
|
optional
|
Definalization doesn't scale
|
job003955
|
optional
|
No regression test for job003898
|
job003962
|
optional
|
Regular testing omits the MMQA test suite
|
job003963
|
optional
|
Address-based hash table design is not stress-tested
|
job003969
|
optional
|
Event clock implementation may not be reliable
|
job003970
|
optional
|
The MPS can't scan in parallel with the mutator
|
job003974
|
optional
|
StackContext and MutatorContext could be unified
|
job003976
|
optional
|
Can't scan parts of segments allocated by buffers
|
job003977
|
optional
|
We maintain redundant NMAKE files
|
job003979
|
optional
|
Forwarding unnecessarily lowers the read barrier
|
job003980
|
optional
|
Branching tool does not distinguish between private and public Git mappings
|
job003981
|
optional
|
MPS does not benefit from huge TLB entries
|
job003984
|
optional
|
Calling mps_clock frequently is bad for performance
|
job003987
|
optional
|
Emergency collection is not documented
|
job003988
|
optional
|
No continuous integration test for 32-bit MPS on Linux and OS X
|
job003989
|
optional
|
On Windows, pause times are measured using clock(), which is wall-clock time
|
job003995
|
optional
|
MPS doesn't support debugging APs
|
job003999
|
optional
|
Manually managed address space is only returned to the operating system via a trace
|
job004002
|
optional
|
Can't implement incremental condemn
|
job004004
|
optional
|
mps_arena_pause_time and mps_arena_pause_time_set are not covered
|
job004008
|
optional
|
AMSSegMerge loses buffer on high segment
|
job004016
|
optional
|
AMC pool may scan parts buffered segments many times
|
job004022
|
optional
|
Mutator is suspended while the foundation is discovered
|
job004023
|
optional
|
Summary-based write barrier invariant won't cope with pre-flip scanning
|
job004035
|
optional
|
Thread roots not suitable for user-level threads
|
job004085
|
optional
|
MPS doesn't cooperate well with other SEGV handlers
|
job004098
|
optional
|
Use of clock() is not fork-safe
|
job004099
|
optional
|
Monitor not usable for long-running processes
|
job004100
|
optional
|
Inconsistent linearization of event times
|
job004105
|
optional
|
Time and space overheads are high
|
job000543
|
nice
|
No MPS programmer's guide
|
job000548
|
nice
|
AMS grain colour doesn't agree with design doc
|
job001357
|
nice
|
Configura cannot use Win32 fibers
|
job001571
|
nice
|
MPS multiple traces would not work
|
job001676
|
nice
|
AMC does not implement weakness in emergency fixing.
|
job001708
|
nice
|
VM Arena's segment placement policy could be improved.
|
job001709
|
nice
|
VM Arena uses up zones too quickly.
|
job001715
|
nice
|
MPS fails to lower barrier when hit: multiple hits cause slowdown (CONJECTURE)
|
job001789
|
nice
|
MPS auto_header format is not tested by main test files
|
job003324
|
nice
|
Manual contains little about performance of interface
|
job003325
|
nice
|
Purpose of the "class" method of an object format is unclear
|
job003328
|
nice
|
Possible improvement to reserve/commit protocol
|
job003357
|
nice
|
AWL is awkward to use
|
job003374
|
nice
|
No documentation about low memory situations
|
job003448
|
nice
|
mps_arena_vm_growth is not documented
|
job003482
|
nice
|
Test suite doesn't test error paths
|
job003493
|
nice
|
No recovery mode after assertion failure
|
job003508
|
nice
|
Little in manual about in-band headers
|
job003515
|
nice
|
Can't collect diverse MPS messages in order
|
job003632
|
nice
|
Difficult to integrate with application that has non-atomic updates
|
job003653
|
nice
|
Scanner makes no use of __builtin_prefetch
|
job003671
|
nice
|
Non-moving pools don't make best use of zones
|
job003719
|
nice
|
Hard to test and debug threading behaviour
|
job003758
|
nice
|
The MPS does not build with gcc -Wconversion
|
job003763
|
nice
|
No easy way to automatically clear freed memory
|
job003766
|
nice
|
Splitting and merging complicates writing new seg classes
|
job003770
|
nice
|
MPS does not compile from C++
|
job003781
|
nice
|
No automated performance test
|
job003786
|
nice
|
No automated test of the event subsystem
|
job003789
|
nice
|
MPS does not try collecting when out of memory
|
job003791
|
nice
|
Can't set the rank on an AMC/AMCZ allocation point
|
job003792
|
nice
|
AMS and AWL don't update summaries of condemned segments
|
job003795
|
nice
|
Arena extensions are not adaptive
|
job003802
|
nice
|
Manual unclear about exact collection
|
job003803
|
nice
|
Hard to discover roots
|
job003805
|
nice
|
Bit table scanning is unoptimized
|
job003816
|
nice
|
Can't specify generation per allocation point
|
job003837
|
nice
|
No control over which objects are "large"
|
job003838
|
nice
|
MVT uses segments unnecessarily
|
job003839
|
nice
|
No benchmarks for space performance
|
job003842
|
nice
|
Missing dependencies in nmake build system
|
job003847
|
nice
|
Allocation clock inconsistency in handling of AMC segment padding
|
job003852
|
nice
|
No heap consistency checker
|
job003859
|
nice
|
Assertion failures in amcssth
|
job003864
|
nice
|
Uncollected finalization messages lead to retention
|
job003881
|
nice
|
SNC never returns memory to the arena
|
job003894
|
nice
|
Intrinsic functions not used on Windows
|
job003895
|
nice
|
No interface to logging control
|
job003902
|
nice
|
commpre/commpost distinction is unnecessary
|
job003905
|
nice
|
Can't build the MPS in parallel
|
job003919
|
nice
|
No interface for getting bytes allocated
|
job003924
|
nice
|
Unnecessary allocation during arena creation
|
job003928
|
nice
|
VM arena uses two VMs when one might do
|
job003941
|
nice
|
Configuration parameters are uncommented
|
job003943
|
nice
|
No consistent way to discover arena configuration
|
job003945
|
nice
|
Easy to mistakenly omit to enable finalization messages
|
job003947
|
nice
|
Allocation frame protocol not safe for general pools
|
job003978
|
nice
|
Too hard to experiment with different MPS parameters
|
job003990
|
nice
|
MPS doesn't notice if clients write scanners that don't check error codes
|
job003991
|
nice
|
No validation tests for client formats.
|
job004005
|
nice
|
Destroying an automatically managed pool does not check that the arena is parked
|
job004009
|
nice
|
Can't split a segment if buffer is above the split point
|
job004024
|
nice
|
Accounting overheads are too high on mark & sweep pools
|
job004025
|
nice
|
Duplicate code between pool classes
|
job004057
|
nice
|
Warning pragmas are not localised around the bad cases
|
job004066
|
nice
|
Thread-handling functions could do more checking
|
job004067
|
nice
|
Telemetry interacts poorly with fork
|
job004068
|
nice
|
Duplicate thread-management code
|
job004080
|
nice
|
Telemetry output not appropriate for interactive use
|
job004088
|
nice
|
Can't destroy an allocation point with a reserve
|
job004091
|
nice
|
No support for saving and restoring automatically managed memory
|
job004095
|
nice
|
No need for two classes of MRG segment
|
job004103
|
nice
|
No smoke test coverage of mapping failure in pagesMarkAllocated
|
job004142
|
nice
|
MPS sources contain links to private documents
|