Changeset 97c75bf
- Timestamp:
- Jul 5, 2026, 11:19:36 PM (5 days ago)
- Branches:
- master
- Children:
- 9df6059
- Parents:
- 34d194c
- Location:
- libcfa/src
- Files:
-
- 13 edited
-
concurrency/actor.hfa (modified) (2 diffs)
-
concurrency/io.cfa (modified) (2 diffs)
-
concurrency/io/setup.cfa (modified) (1 diff)
-
concurrency/kernel.cfa (modified) (5 diffs)
-
concurrency/kernel/cluster.cfa (modified) (1 diff)
-
concurrency/kernel/cluster.hfa (modified) (1 diff)
-
concurrency/kernel/startup.cfa (modified) (2 diffs)
-
concurrency/ready_queue.cfa (modified) (1 diff)
-
concurrency/ready_subqueue.hfa (modified) (1 diff)
-
concurrency/stats.cfa (modified) (1 diff)
-
concurrency/thread.cfa (modified) (2 diffs)
-
startup.cfa (modified) (4 diffs)
-
stdlib.hfa (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/actor.hfa
r34d194c r97c75bf 205 205 this.msgs_stolen = 0; // number of messages stolen 206 206 #endif 207 this.stamp = rdtsc l();207 this.stamp = rdtsc(); 208 208 } 209 209 … … 631 631 CHECK_TERMINATION; // check for termination 632 632 633 __atomic_store_n( &executor_->w_infos[id].stamp, rdtsc l(), __ATOMIC_RELAXED );633 __atomic_store_n( &executor_->w_infos[id].stamp, rdtsc(), __ATOMIC_RELAXED ); 634 634 635 635 #ifdef ACTOR_STATS -
libcfa/src/concurrency/io.cfa
r34d194c r97c75bf 206 206 // update the timestamps accordingly 207 207 // keep a local copy so we can update the relaxed copy 208 ts_next = ctx->cq.ts = rdtsc l();208 ts_next = ctx->cq.ts = rdtsc(); 209 209 210 210 // Mark to the kernel that the cqe has been seen … … 274 274 275 275 const unsigned this_cache = cache_id(cltr, ctx->cq.id / __shard_factor.io); 276 const unsigned long long ctsc = rdtsc l();276 const unsigned long long ctsc = rdtsc(); 277 277 278 278 // only help once every other time -
libcfa/src/concurrency/io/setup.cfa
r34d194c r97c75bf 217 217 cq.try_lock = false; 218 218 cq.id = MAX; 219 cq.ts = rdtsc l();219 cq.ts = rdtsc(); 220 220 cq.head = (volatile __u32 *)(((intptr_t)cq.ring_ptr) + params.cq_off.head); 221 221 cq.tail = (volatile __u32 *)(((intptr_t)cq.ring_ptr) + params.cq_off.tail); -
libcfa/src/concurrency/kernel.cfa
r34d194c r97c75bf 10 10 // Created On : Tue Jan 17 12:27:26 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un Mar 29 21:20:54202613 // Update Count : 8 312 // Last Modified On : Sat Jul 4 15:23:42 2026 13 // Update Count : 84 14 14 // 15 15 … … 150 150 // Because of a bug, we couldn't initialized the seed on construction 151 151 // Do it here 152 PRNG_SET_SEED( __cfaabi_tls.random_state, rdtsc l() );153 __cfaabi_tls.ready_rng.fwd_seed = 25214903917_l64u * (rdtsc l() ^ (uintptr_t)&runner);152 PRNG_SET_SEED( __cfaabi_tls.random_state, rdtsc() ); 153 __cfaabi_tls.ready_rng.fwd_seed = 25214903917_l64u * (rdtsc() ^ (uintptr_t)&runner); 154 154 __tls_rand_advance_bck(); 155 155 … … 692 692 this->idle_wctx.sem = 1; 693 693 694 this->idle_wctx.wake__time = rdtsc l();694 this->idle_wctx.wake__time = rdtsc(); 695 695 696 696 eventfd_t val; … … 723 723 #if ! defined(__CFA_NO_STATISTICS__) 724 724 if (this->print_halts) { 725 __cfaabi_bits_print_safe( STDOUT_FILENO, "PH:%d - %lld 0\n", this->unique_id, rdtsc l());725 __cfaabi_bits_print_safe( STDOUT_FILENO, "PH:%d - %lld 0\n", this->unique_id, rdtsc()); 726 726 } 727 727 #endif … … 749 749 #if ! defined(__CFA_NO_STATISTICS__) 750 750 if (this->print_halts) { 751 __cfaabi_bits_print_safe( STDOUT_FILENO, "PH:%d - %lld 1\n", this->unique_id, rdtsc l());751 __cfaabi_bits_print_safe( STDOUT_FILENO, "PH:%d - %lld 1\n", this->unique_id, rdtsc()); 752 752 } 753 753 #endif -
libcfa/src/concurrency/kernel/cluster.cfa
r34d194c r97c75bf 278 278 tscs = alloc(count, tscs`realloc); 279 279 for(i; count) { 280 tscs[i].t.tv = rdtsc l();280 tscs[i].t.tv = rdtsc(); 281 281 tscs[i].t.ma = 0; 282 282 } -
libcfa/src/concurrency/kernel/cluster.hfa
r34d194c r97c75bf 100 100 static inline void touch_tsc(__timestamp_t * tscs, size_t idx, unsigned long long ts_prev, unsigned long long ts_next, bool strict) { 101 101 if (ts_next == ULLONG_MAX) return; 102 unsigned long long now = rdtsc l();102 unsigned long long now = rdtsc(); 103 103 __readyQ_avg_t pma = __atomic_load_n(&tscs[ idx ].t.ma, __ATOMIC_RELAXED); 104 104 __atomic_store_n(&tscs[ idx ].t.tv, ts_next, __ATOMIC_RELAXED); -
libcfa/src/concurrency/kernel/startup.cfa
r34d194c r97c75bf 509 509 preferred = ready_queue_new_preferred(); 510 510 last_proc = 0p; 511 PRNG_SET_SEED( random_state, __global_random_mask ? __global_random_prime : __global_random_prime ^ rdtsc l() );511 PRNG_SET_SEED( random_state, __global_random_mask ? __global_random_prime : __global_random_prime ^ rdtsc() ); 512 512 #if defined( __CFA_WITH_VERIFY__ ) 513 513 executing = 0p; … … 868 868 #if defined(__CFA_WITH_VERIFY__) 869 869 static bool verify_fwd_bck_rng(void) { 870 __cfaabi_tls.ready_rng.fwd_seed = 25214903917_l64u * (rdtsc l() ^ (uintptr_t)&verify_fwd_bck_rng);870 __cfaabi_tls.ready_rng.fwd_seed = 25214903917_l64u * (rdtsc() ^ (uintptr_t)&verify_fwd_bck_rng); 871 871 872 872 unsigned values[10]; -
libcfa/src/concurrency/ready_queue.cfa
r34d194c r97c75bf 122 122 // Figure out the current cache is 123 123 const unsigned this_cache = cache_id(cltr, this / __shard_factor.readyq); 124 const unsigned long long ctsc = rdtsc l();124 const unsigned long long ctsc = rdtsc(); 125 125 126 126 if(proc->rdq.target == UINT_MAX) { -
libcfa/src/concurrency/ready_subqueue.hfa
r34d194c r97c75bf 52 52 // Get the relevant nodes locally 53 53 this.l.prev->rdy_link.next = node; 54 __atomic_store_n(&this.l.prev->rdy_link.ts, rdtsc l(), __ATOMIC_RELAXED);54 __atomic_store_n(&this.l.prev->rdy_link.ts, rdtsc(), __ATOMIC_RELAXED); 55 55 this.l.prev = node; 56 56 #if !defined(__CFA_NO_STATISTICS__) -
libcfa/src/concurrency/stats.cfa
r34d194c r97c75bf 221 221 if(external) unlock(stats_lock); 222 222 223 this->array.values[idx].ts = rdtsc l();223 this->array.values[idx].ts = rdtsc(); 224 224 this->array.values[idx].value = value; 225 225 } -
libcfa/src/concurrency/thread.cfa
r34d194c r97c75bf 10 10 // Created On : Tue Jan 17 12:27:26 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un Sep 3 08:25:21 202313 // Update Count : 10 512 // Last Modified On : Sat Jul 4 15:21:11 2026 13 // Update Count : 106 14 14 // 15 15 … … 54 54 last_proc = 0p; 55 55 link_node = 0p; 56 PRNG_SET_SEED( random_state, __global_random_mask ? __global_random_prime : __global_random_prime ^ rdtsc l() );56 PRNG_SET_SEED( random_state, __global_random_mask ? __global_random_prime : __global_random_prime ^ rdtsc() ); 57 57 #if defined( __CFA_WITH_VERIFY__ ) 58 58 executing = 0p; -
libcfa/src/startup.cfa
r34d194c r97c75bf 10 10 // Created On : Tue Jul 24 16:21:57 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Dec 5 11:41:58 202213 // Update Count : 7312 // Last Modified On : Sat Jul 4 15:28:52 2026 13 // Update Count : 88 14 14 // 15 15 … … 17 17 #include <locale.h> // setlocale 18 18 #include <stdlib.h> // getenv 19 #include "bits/defs.hfa" // rdtscl 20 #include "bits/random.hfa" // rdtscl 19 #include "bits/defs.hfa" // libcfa_nopreempt 20 #include "bits/random.hfa" // PRNG 21 #include "bits/atomic.hfa" // rdtsc 21 22 #include "startup.hfa" 22 23 … … 39 40 void __cfaabi_appready_startup( void ) __attribute__(( constructor( STARTUP_PRIORITY_APPREADY ) )); 40 41 void __cfaabi_appready_startup( void ) { 42 // Initialized here to prevent unfreed memory messages. 41 43 tzset(); // initialize time global variables 44 setlocale( LC_ALL, getenv( "LANG" ) ); // print digit separator 45 setlocale( LC_ALL, "C" ); 42 46 extern void heapAppStart(); 43 47 heapAppStart(); … … 69 73 void __cfaabi_core_startup( void ) __attribute__(( constructor( STARTUP_PRIORITY_CORE ) )); 70 74 void __cfaabi_core_startup( void ) { 71 __global_random_seed = rdtsc l();75 __global_random_seed = rdtsc(); 72 76 PRNG_SET_SEED( __global_random_state, __global_random_seed ); 73 77 -
libcfa/src/stdlib.hfa
r34d194c r97c75bf 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Dec 18 22:25:25 202413 // Update Count : 9 6512 // Last Modified On : Sat Jul 4 15:28:46 2026 13 // Update Count : 970 14 14 // 15 15 … … 19 19 #include "bits/align.hfa" // libAlign 20 20 #include "bits/random.hfa" // prng 21 #include "bits/atomic.hfa" // rdtsc 21 22 #include <Exception.hfa> 22 23 #include <heap.hfa> … … 484 485 uint32_t get_seed( PRNG32 & prng ) __attribute__(( warn_unused_result )) with( prng ) { return seed; } 485 486 void ?{}( PRNG32 & prng, uint32_t seed ) with( prng ) { callcnt = 0; set_seed( prng, seed ); } // fixed seed 486 void ?{}( PRNG32 & prng ) with( prng ) { ?{}( prng, rdtsc l() ); } // random seed487 void ?{}( PRNG32 & prng ) with( prng ) { ?{}( prng, rdtsc() ); } // random seed 487 488 uint32_t prng( PRNG32 & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return PRNG_NAME_32( state ); } // [0,UINT_MAX] 488 489 uint32_t prng( PRNG32 & prng, uint32_t u ) __attribute__(( warn_unused_result )) { return prng( prng ) % u; } // [0,u) … … 504 505 uint64_t get_seed( PRNG64 & prng ) __attribute__(( warn_unused_result )) with( prng ) { return seed; } 505 506 void ?{}( PRNG64 & prng, uint64_t seed ) with( prng ) { callcnt = 0; set_seed( prng, seed ); } // fixed seed 506 void ?{}( PRNG64 & prng ) with( prng ) { ?{}( prng, rdtsc l() ); } // random seed507 void ?{}( PRNG64 & prng ) with( prng ) { ?{}( prng, rdtsc() ); } // random seed 507 508 uint64_t prng( PRNG64 & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return PRNG_NAME_64( state ); } // [0,UINT_MAX] 508 509 uint64_t prng( PRNG64 & prng, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( prng ) % u; } // [0,u)
Note:
See TracChangeset
for help on using the changeset viewer.