55e6ccb708 
								
							
								 
							
						 
						
							
							
								
								VM: remove the reversing from sampling profiler callstack collection  #452  
							
							
							
						 
						
							2016-10-13 01:34:55 +02:00  
				
					
						
							
							
								 
						
							
							
								0d57734dab 
								
							
								 
							
						 
						
							
							
								
								vm: replace block comments /**/ with line comments //  
							
							
							
						 
						
							2016-09-09 05:47:52 +02:00  
				
					
						
							
							
								 
						
							
							
								e0acf4f328 
								
							
								 
							
						 
						
							
							
								
								Revert "vm: replace line comments // with block comments /**/ for consintency"  
							
							... 
							
							
							
							This reverts commit 7ee4e5dea5 
							
						 
						
							2016-09-09 05:47:52 +02:00  
				
					
						
							
							
								 
						
							
							
								b5c6658ae5 
								
							
								 
							
						 
						
							
							
								
								VM: removing the safepoint_state class  
							
							... 
							
							
							
							The code reads better if the safepoint_state methods and
attributes (sample_counts and safepoint_fep_p) are moved to the vm
class. 
							
						 
						
							2016-08-15 15:16:41 +02:00  
				
					
						
							
							
								 
						
							
							
								2f6f69eb5b 
								
							
								 
							
						 
						
							
							
								
								VM: trying to simplify record_sample and the profiling_sample constructor  
							
							
							
						 
						
							2016-08-15 15:16:41 +02:00  
				
					
						
							
							
								 
						
							
							
								7ee4e5dea5 
								
							
								 
							
						 
						
							
							
								
								vm: replace line comments // with block comments /**/ for consintency  
							
							... 
							
							
							
							Fix  #1651 . 
						
							2016-08-03 09:19:48 -07:00  
				
					
						
							
							
								 
						
							
							
								e302928510 
								
							
								 
							
						 
						
							
							
								
								vm: fix a typo in a comment  
							
							
							
						 
						
							2016-05-30 12:11:56 -07:00  
				
					
						
							
							
								 
						
							
							
								3ea7fe616e 
								
							
								 
							
						 
						
							
							
								
								vm: fix warning C4800: forcing value to bool  
							
							... 
							
							
							
							The warning is issued by the Visual Studio 2015, treated as error. 
							
						 
						
							2016-05-30 12:11:56 -07:00  
				
					
						
							
							
								 
						
							
							
								08c2e3a32d 
								
							
								 
							
						 
						
							
							
								
								VM: better logic in factor_vm::set_sampling_profiler  
							
							... 
							
							
							
							It avoids the double-negation. 
							
						 
						
							2016-05-19 01:25:53 +02:00  
				
					
						
							
							
								 
						
							
							
								7f8d5cbef4 
								
							
								 
							
						 
						
							
							
								
								VM: when starting the sampling profiler, the data needs to be cleared  
							
							
							
						 
						
							2016-05-06 19:56:13 +02:00  
				
					
						
							
							
								 
						
							
							
								9824be8714 
								
							
								 
							
						 
						
							
							
								
								VM: The C++11 method shrink_to_fit() can be used to release memory  
							
							
							
						 
						
							2016-05-05 14:22:57 +02:00  
				
					
						
							
							
								 
						
							
							
								5826394573 
								
							
								 
							
						 
						
							
							
								
								VM: the (clear-samples) primitive is unused  
							
							
							
						 
						
							2016-05-05 02:33:35 +02:00  
				
					
						
							
							
								 
						
							
							
								bc9f62efde 
								
							
								 
							
						 
						
							
							
								
								VM: using a c++ lambda over a struct  
							
							
							
						 
						
							2016-05-05 01:57:52 +02:00  
				
					
						
							
							
								 
						
							
							
								eb7a5ab1ba 
								
							
								 
							
						 
						
							
							
								
								VM: some more fixing to make the types match better, converting void* to cell  
							
							
							
						 
						
							2015-01-15 09:29:13 +00:00  
				
					
						
							
							
								 
						
							
							
								b2929acff6 
								
							
								 
							
						 
						
							
							
								
								VM: Refactor sampling_profiler.cpp/hpp to Factor style  
							
							
							
						 
						
							2013-05-12 13:24:47 -04:00  
				
					
						
							
							
								 
						
							
							
								aad70160f0 
								
							
								 
							
						 
						
							
							
								
								vm: Add more comments about functions that allocate.  
							
							
							
						 
						
							2012-08-15 22:00:08 -07:00  
				
					
						
							
							
								 
						
							
							
								604ceb957c 
								
							
								 
							
						 
						
							
							
								
								vm: replace remaining stack_frame-based logic  
							
							
							
						 
						
							2011-12-14 09:56:49 -08:00  
				
					
						
							
							
								 
						
							
							
								0a1a252cdb 
								
							
								 
							
						 
						
							
							
								
								vm: replace assert with FACTOR_ASSERT  
							
							... 
							
							
							
							Factor is finally a real C++ project and has a custom assert macro. Assertion failures were still getting caught as exceptions and causing failure loops. Write our own macro that calls factor::abort on failure. 
							
						 
						
							2011-11-23 11:11:26 -08:00  
				
					
						
							
							
								 
						
							
							
								6c0ecf631a 
								
							
								 
							
						 
						
							
							
								
								vm: charge samples collected in prolog to parent  
							
							... 
							
							
							
							Fixes  #379  
						
							2011-11-23 11:11:26 -08:00  
				
					
						
							
							
								 
						
							
							
								72d335f2b5 
								
							
								 
							
						 
						
							
							
								
								vm: write async signals to pipe for multiplexer  
							
							... 
							
							
							
							also factor out safepoint logic into its own file 
							
						 
						
							2011-11-08 08:42:46 -08:00  
				
					
						
							
							
								 
						
							
							
								212d012cb1 
								
							
								 
							
						 
						
							
							
								
								vm: switch atomic::add to atomic::fetch_add  
							
							... 
							
							
							
							Win32 only provides fetch-and-add, not add-and-fetch, and we don't really care. Rename the functions so the order of operations is clear. 
							
						 
						
							2011-11-07 17:58:53 -08:00  
				
					
						
							
							
								 
						
							
							
								2d87b68a56 
								
							
								 
							
						 
						
							
							
								
								vm: sample pc on windows  
							
							
							
						 
						
							2011-11-02 21:18:31 -07:00  
				
					
						
							
							
								 
						
							
							
								1833beea52 
								
							
								 
							
						 
						
							
							
								
								vm: fix MSVC warnings  
							
							
							
						 
						
							2011-11-02 20:26:53 -07:00  
				
					
						
							
							
								 
						
							
							
								82a62181ce 
								
							
								 
							
						 
						
							
							
								
								vm: count samples during unoptimized compiler  
							
							
							
						 
						
							2011-11-02 13:23:21 -07:00  
				
					
						
							
							
								 
						
							
							
								4d39e59054 
								
							
								 
							
						 
						
							
							
								
								vm: add atomic::load and atomic::store functions  
							
							... 
							
							
							
							Abstract out the fence-and-load and store-and-fence patterns 
							
						 
						
							2011-11-02 13:23:19 -07:00  
				
					
						
							
							
								 
						
							
							
								be8db5aed3 
								
							
								 
							
						 
						
							
							
								
								vm: sample thread object rather than raw context  
							
							
							
						 
						
							2011-11-02 13:23:18 -07:00  
				
					
						
							
							
								 
						
							
							
								7da8a9776f 
								
							
								 
							
						 
						
							
							
								
								vm: sample code block owners instead of blocks  
							
							
							
						 
						
							2011-11-02 13:23:17 -07:00  
				
					
						
							
							
								 
						
							
							
								e880095da3 
								
							
								 
							
						 
						
							
							
								
								vm: fix data roots in get-samples primitive  
							
							
							
						 
						
							2011-11-02 13:23:17 -07:00  
				
					
						
							
							
								 
						
							
							
								29fa23c40a 
								
							
								 
							
						 
						
							
							
								
								vm: quell MSVC warnings  
							
							
							
						 
						
							2011-11-02 13:23:16 -07:00  
				
					
						
							
							
								 
						
							
							
								30ed9b535b 
								
							
								 
							
						 
						
							
							
								
								vm: parameterize sampling rate  
							
							
							
						 
						
							2011-11-02 13:23:15 -07:00  
				
					
						
							
							
								 
						
							
							
								799053661e 
								
							
								 
							
						 
						
							
							
								
								vm: better organize atomics and sample counter  
							
							
							
						 
						
							2011-11-02 13:23:15 -07:00  
				
					
						
							
							
								 
						
							
							
								27ac4c60f4 
								
							
								 
							
						 
						
							
							
								
								vm: factor out sample counting code  
							
							
							
						 
						
							2011-11-02 13:23:13 -07:00  
				
					
						
							
							
								 
						
							
							
								d9afe92c97 
								
							
								 
							
						 
						
							
							
								
								get sampler working under windows  
							
							
							
						 
						
							2011-11-02 13:23:12 -07:00  
				
					
						
							
							
								 
						
							
							
								abaa051768 
								
							
								 
							
						 
						
							
							
								
								vm: fix build on windows  
							
							
							
						 
						
							2011-11-02 13:23:12 -07:00  
				
					
						
							
							
								 
						
							
							
								1351e30e52 
								
							
								 
							
						 
						
							
							
								
								vm: sampling profiler timer for windows  
							
							... 
							
							
							
							Spawn a thread and have it spin on the performance counter, triggering safepoints on the main thread every sample time 
							
						 
						
							2011-11-02 13:23:11 -07:00  
				
					
						
							
							
								 
						
							
							
								f5cdfaeb2a 
								
							
								 
							
						 
						
							
							
								
								vm: count samples from foreign threads  
							
							... 
							
							
							
							On OS X it appears the mach exception thread and libdispatch queue threads occasionally get the SIGALRM from the itimer. Count those as foreign_thread_samples instead of letting the signal kill the process. 
							
						 
						
							2011-11-02 13:23:10 -07:00  
				
					
						
							
							
								 
						
							
							
								e10c3183c8 
								
							
								 
							
						 
						
							
							
								
								vm: add primitives to lift sample data to factor  
							
							
							
						 
						
							2011-11-02 13:23:09 -07:00  
				
					
						
							
							
								 
						
							
							
								1089816b21 
								
							
								 
							
						 
						
							
							
								
								vm: release memory used by sampler vectors  
							
							
							
						 
						
							2011-11-02 13:23:08 -07:00  
				
					
						
							
							
								 
						
							
							
								40bc8459db 
								
							
								 
							
						 
						
							
							
								
								vm: bottom_frame method for contexts  
							
							... 
							
							
							
							ctx->callstack_bottom - 1 -- the fuck does that mean?! 
							
						 
						
							2011-11-02 13:23:07 -07:00  
				
					
						
							
							
								 
						
							
							
								be5c7476d7 
								
							
								 
							
						 
						
							
							
								
								vm: don't allocate callstack samples on data heap  
							
							... 
							
							
							
							Invoking a GC during a safepoint has some complications, so stuff the callstack samples in a vector instead. 
							
						 
						
							2011-11-02 13:23:07 -07:00  
				
					
						
							
							
								 
						
							
							
								80fb7788d9 
								
							
								 
							
						 
						
							
							
								
								vm: groundwork for sampling profiler  
							
							... 
							
							
							
							Set up the state necessary to collect samples. We still need to add GC support for walking the sample set, and the compiler needs to register GC roots before safepoints as well. We also need primitives to expose the data to Factor for reporting. 
							
						 
						
							2011-11-02 13:23:06 -07:00