Gareth Rees
aea2ed3811
Handle deletion of arenas and pools (they often get recreated at the same addresses so this is vital).
...
Sort the events in batches so that, for example, we get PoolFinish before ArenaDestroy.
Emit ArenaDestroy event after finishing all its pools.
Add arena parameter to PoolFinish event.
Restore top-down logging of events (no need to order them the telemetry output, since the monitor sorts them).
Add comments for all the events used by the monitor.
Include the arena's name in the pool's name when there are multiple arenas.
Copied from Perforce
Change: 194112
2018-06-23 15:37:11 +01:00
Gareth Rees
bb5034594d
Event alignment doesn't need to be mps_pf_align (that's wasteful on windows).
...
Copied from Perforce
Change: 194091
2018-06-22 14:09:56 +01:00
Gareth Rees
c3a7104eff
Label the time series in the monitor.
...
In telemetry output, distinguish between labelling of (client) addresses and (MPS-internal) pointers, to avoid transgressing the distinction.
Add arena grain size, class, and serial number to ArenaCreate* events.
Add pool class and serial number to PoolInit event.
Copied from Perforce
Change: 194086
2018-06-22 11:05:46 +01:00
Gareth Rees
6ebfdb2a10
Avoid "dereferencing type-punned pointer will break strict-aliasing rules" from gcc 4.8.
...
Copied from Perforce
Change: 194061
2018-06-21 17:30:51 +01:00
Gareth Rees
14ce806a0c
Emit events in time order (per kind for now) in order to support telemetry consumers that run in real time.
...
Copied from Perforce
Change: 194051
2018-06-21 14:00:05 +01:00
Gareth Rees
fb3e4144a9
Untabify.
...
Copied from Perforce
Change: 191528
ServerID: perforce.ravenbrook.com
2016-04-21 20:50:45 +01:00
Richard Brooksby
72d14e139f
Guarding eventinit with the global lock, and removing the enforcement of the reference count, so that the event system can be used from classes, which get called before any arena.
...
Copied from Perforce
Change: 191018
ServerID: perforce.ravenbrook.com
2016-04-12 18:16:06 +01:00
Gareth Rees
f8cd40212e
Fix bug in event_desc macro introduced in change 187071.
...
Copied from Perforce
Change: 187081
ServerID: perforce.ravenbrook.com
2014-09-29 09:48:47 +01:00
Gareth Rees
2d0f425428
Ensure that code of the form if (condition) statement; is split over two lines, so that it is possible to set a breakpoint on the statement in a debugger.
...
This change was agreed in 1997 (see <https://info.ravenbrook.com/project/mps/mail/1997/08/19/13-44/0.txt >), so it's about time it was implemented.
Copied from Perforce
Change: 187071
ServerID: perforce.ravenbrook.com
2014-09-27 22:57:02 +01:00
Gareth Rees
10afd0ee3b
Cast all arguments to the writef function to make it easy to check that none of the necessary casts have been omitted.
...
New macro WriteFYesNo makes it easy to describe a Boolean.
Describe more structure elements for ABQ, Arena, Buffer, Format, MFS, Root, Seg.
Copied from Perforce
Change: 187063
ServerID: perforce.ravenbrook.com
2014-09-27 12:49:30 +01:00
Gareth Rees
1b7de24015
Some assertions with && crept back in. split them up so that we get as much information as possible from an assertion failure.
...
Copied from Perforce
Change: 186577
ServerID: perforce.ravenbrook.com
2014-06-13 15:52:50 +01:00
Gareth Rees
c8d293af37
Fix rash build.
...
Copied from Perforce
Change: 186527
ServerID: perforce.ravenbrook.com
2014-06-12 13:49:57 +01:00
Gareth Rees
add3e4bf93
Consistent order stream, depth.
...
Copied from Perforce
Change: 186001
ServerID: perforce.ravenbrook.com
2014-05-11 18:30:23 +01:00
Gareth Rees
c44f2d6a20
Correct indentation of describe output by passing depth parameter to describe functions and to writef.
...
Call Describe functions from test cases so that we get coverage.
Copied from Perforce
Change: 186000
ServerID: perforce.ravenbrook.com
2014-05-11 18:20:38 +01:00
Gareth Rees
4ed8190265
Back out change 185626 (violates the design.mps.writef.snazzy).
...
Copied from Perforce
Change: 185941
ServerID: perforce.ravenbrook.com
2014-05-02 12:44:31 +01:00
Gareth Rees
d83fbf6b09
Correct indentation of describe output.
...
Copied from Perforce
Change: 185626
ServerID: perforce.ravenbrook.com
2014-04-17 13:36:42 +01:00
Gareth Rees
532cd901ac
Avoid strict aliasing warnings from gcc 4.8.
...
Copied from Perforce
Change: 185484
ServerID: perforce.ravenbrook.com
2014-04-12 21:44:18 +01:00
Gareth Rees
ab57c07df5
Turn on -wduplicate-enum and -wmissing-variable-declarations options for clang. ensure the mps compiles with these options.
...
Copied from Perforce
Change: 185466
ServerID: perforce.ravenbrook.com
2014-04-11 15:17:20 +01:00
Gareth Rees
7fc9d6f911
Avoid expanding __file__ in aver in pelles c -- the compiler somehow loses its definition for __file__ in deeply nested macro expansions.
...
Copied from Perforce
Change: 185025
ServerID: perforce.ravenbrook.com
2014-03-26 13:44:02 +00:00
Gareth Rees
42b4955c2f
Uncomment event_list calls.
...
Copied from Perforce
Change: 185011
ServerID: perforce.ravenbrook.com
2014-03-25 15:12:33 +00:00
Gareth Rees
c94be13bdf
Improved support for pelles c:
...
* Refactor nmake files so that a compiler-specific makefile is included; move Microsoft Visual C-specific options to mv.nmk.
* Add nmake files for Pelles (w3i3pc.nmk and pc.nmk).
* Rename spw3i3mv.c to spw3i3.c and spw3i6mv.c to spw3i6.c since these are also used by Pelles C.
* Make reasonable changes to the source code to avoid warnings from Pelles C:
** check results of function calls;
** avoid useless return values;
** undef max before defining it;
** ensure printf formats are checkable;
** move notreached() assertions to the end of blocks;
** suppress warnings in cases where the code shouldn't be changed ("Unreachable code", "Inline assembly code is not portable", "Structured Exception Handling is not portable").
Copied from Perforce
Change: 184977
ServerID: perforce.ravenbrook.com
2014-03-24 18:23:29 +00:00
Gareth Rees
a3575822cc
Catch-up merge from master sources to branch/2014-03-21/pellesc.
...
Copied from Perforce
Change: 184973
ServerID: perforce.ravenbrook.com
2014-03-24 12:20:49 +00:00
Gareth Rees
a9fbb48533
Replace hex constant 9024eac8 (gotneach) with 4026eac8 (notreach).
...
Copied from Perforce
Change: 184972
ServerID: perforce.ravenbrook.com
2014-03-24 12:13:20 +00:00
Gareth Rees
f7f4c6bc1c
Mps compiles and runs using pelles c.
...
Merge code from Bruce Mitchener <https://github.com/Ravenbrook/mps-temporary/pull/2 > and from RB <https://github.com/waywardmonkeys/mps-temporary/pull/1/files >.
Split call to EVENT_LIST so that event.c compiles.
Remove useless call to va_end in seg.c.
Copied from Perforce
Change: 184948
ServerID: perforce.ravenbrook.com
2014-03-21 18:28:39 +00:00
Gareth Rees
7b16ae5a45
Use macro nonnegative so that we can keep asserting that values are >= 0 without provoking "unsigned comparison >= 0 is always true" warnings from gcc.
...
Copied from Perforce
Change: 183505
ServerID: perforce.ravenbrook.com
2013-10-01 14:27:52 +01:00
Gareth Rees
4950182f38
Avoid warnings when compiling with -wwrite-strings:
...
* Use const char * in places where we want to assign string constants.
Avoid warnings when compiling with -Wextra:
* Avoid if statement with empty body in amcsshe.c
* Avoid comparison of unsigned >= 0.
Copied from Perforce
Change: 183498
ServerID: perforce.ravenbrook.com
2013-10-01 10:52:45 +01:00
Gareth Rees
a344ce6284
Guard the calls to mps_io_flush so that it can only be called after mps_io_create.
...
Copied from Perforce
Change: 182322
ServerID: perforce.ravenbrook.com
2013-05-30 15:24:41 +01:00
Richard Brooksby
8a9d451ff8
Catch-up merge from custom/cet/main to master.
...
Includes installable assertion handler, events in circular memory buffers, LARGEADDRESSAWARE, etc.
Copied from Perforce
Change: 182176
ServerID: perforce.ravenbrook.com
2013-05-24 19:42:46 +01:00
Richard Brooksby
9f7a30bfbc
Preventing failure if there is an assertion before event buffers are initialized.
...
Copied from Perforce
Change: 182012
ServerID: perforce.ravenbrook.com
2013-05-20 19:37:59 +01:00
Gareth Rees
b30f6576b8
Restore "res = resok" to eventflush (removed in change 180152).
...
Copied from Perforce
Change: 180471
ServerID: perforce.ravenbrook.com
2012-11-14 17:46:03 +00:00
Nick Barnes
1a66f62952
Add mps_clocks_per_sec to the eventinit header, and put some header-checking code into eventcnv, so now we have at least a rudimentary check that a binary event log is readable.
...
Copied from Perforce
Change: 180160
ServerID: perforce.ravenbrook.com
2012-10-30 14:15:27 +00:00
Nick Barnes
9ba10aeae4
Make eventclocksync events, and output them once per buffer flush.
...
Copied from Perforce
Change: 180152
ServerID: perforce.ravenbrook.com
2012-10-30 09:36:30 +00:00
Nick Barnes
b407283356
Add an eventinit event, giving various parameters including the event system version.
...
Copied from Perforce
Change: 180100
ServerID: perforce.ravenbrook.com
2012-10-26 13:22:04 +01:00
Richard Brooksby
869bf43521
Responding to nb's review comments.
...
Copied from Perforce
Change: 179335
ServerID: perforce.ravenbrook.com
2012-09-07 15:46:18 +01:00
Richard Brooksby
f11aad1d62
Fixing warnings found by lii6gc build.
...
Copied from Perforce
Change: 179149
ServerID: perforce.ravenbrook.com
2012-08-31 21:27:55 +01:00
Richard Brooksby
8bbc754163
Tidying up fixmes.
...
Catching errors from EVENT_CLOCK_WRITE.
Printing more information about unknown event types.
Copied from Perforce
Change: 179143
ServerID: perforce.ravenbrook.com
2012-08-31 20:15:26 +01:00
Richard Brooksby
589a6aa3f6
Simplifying event string fields to be just c strings.
...
Copied from Perforce
Change: 179142
ServerID: perforce.ravenbrook.com
2012-08-31 19:53:44 +01:00
Richard Brooksby
24eb124aa4
Now there is no measurable performance penalty for events, they're on in all varieties (except we).
...
Copied from Perforce
Change: 179137
ServerID: perforce.ravenbrook.com
2012-08-31 16:42:17 +01:00
Richard Brooksby
f8cad3754b
Writing events into separate buffers by kind.
...
Always recording events into buffers, but only writing them to the telemetry stream if they're enabled.
Copied from Perforce
Change: 179136
ServerID: perforce.ravenbrook.com
2012-08-31 16:09:07 +01:00
Richard Brooksby
767c9a231e
Avoid creating the telemetry output stream until there are events to log.
...
Copied from Perforce
Change: 179134
ServerID: perforce.ravenbrook.com
2012-08-31 15:37:29 +01:00
Richard Brooksby
05ff4da034
Adding an mps-style eventdescribe.
...
Removing deliberate assert and event debugging dump. Oops.
Copied from Perforce
Change: 179133
ServerID: perforce.ravenbrook.com
2012-08-31 15:14:09 +01:00
Richard Brooksby
09cf2f4f37
Writing event dumper to print recent events, and adding it to the default assertion handler.
...
NUL-terminating event strings to make them easier to print.
Copied from Perforce
Change: 179132
ServerID: perforce.ravenbrook.com
2012-08-31 14:12:23 +01:00
Richard Brooksby
477d5f3cc2
Recording events downwards from the top of the buffer so that they can be recovered by a backtrace.
...
Copied from Perforce
Change: 179131
ServerID: perforce.ravenbrook.com
2012-08-31 13:18:19 +01:00
Richard Brooksby
94e9227f38
Meaningful types on event functions.
...
Removing some cut-and-paste code.
Removing unnecessary and incorrect short-circuit macros when events are disabled.
Copied from Perforce
Change: 179126
ServerID: perforce.ravenbrook.com
2012-08-31 10:54:33 +01:00
Richard Brooksby
756742c46c
Adding consistency checks of the event definitions.
...
Tidying up comments and declaration order.
Copied from Perforce
Change: 179125
ServerID: perforce.ravenbrook.com
2012-08-31 10:33:46 +01:00
Richard Brooksby
0de90204e0
Adding a size field to events so that a reader can skip unknown event codes (unimplemented).
...
Copied from Perforce
Change: 179019
ServerID: perforce.ravenbrook.com
2012-08-22 09:16:03 +01:00
Richard Brooksby
deae9bd42b
Moving some common definitions to eventcom.h from event.h.
...
Fixing the types of EventCode etc. to use narrower types to compress things on 64-bit architectures.
Fixing some warnings.
Copied from Perforce
Change: 179015
ServerID: perforce.ravenbrook.com
2012-08-22 08:41:42 +01:00
Richard Brooksby
ddcce429f4
Abolishing eventgen.pl. event structures are now expanded by the preprocessor.
...
Abolishing event formats. Each event now has its own structure.
Event parameters are now written directly into the event buffer, rather than being copied twice.
Copied from Perforce
Change: 179010
ServerID: perforce.ravenbrook.com
2012-08-21 22:48:11 +01:00
Richard Brooksby
f22e14e334
Eliminating "impl" type tags and replacing them with uri-style file references.
...
Copied from Perforce
Change: 29900
ServerID: perforce.ravenbrook.com
2002-06-07 17:34:59 +01:00
Richard Brooksby
5afb4899ef
Adding forward reference to licenses from copyright notices.
...
Adding licenses to a couple of files I missed.
Copied from Perforce
Change: 29837
ServerID: perforce.ravenbrook.com
2002-06-06 11:56:19 +01:00