Changes in / [d3261710:6a33e40]


Ignore:
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • benchmark/io/http/Makefile.am

    rd3261710 r6a33e40  
    2121include $(top_srcdir)/tools/build/cfa.make
    2222
    23 AM_CFLAGS = -O3 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror
     23AM_CFLAGS = -O2 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror
    2424AM_CFAFLAGS = -quiet -nodebug
    2525AM_LDFLAGS = -quiet -nodebug
  • benchmark/io/http/main.cfa

    rd3261710 r6a33e40  
    1 #define _GNU_SOURCE
     1#define __USE_GNU
    22
    33#include <errno.h>
     
    66#include <unistd.h>
    77extern "C" {
    8         #include <sched.h>
    98        #include <signal.h>
    109        #include <sys/socket.h>
     
    6867        (this.self){ "Server Cluster", options.clopts.params };
    6968
    70         cpu_set_t fullset;
    71         CPU_ZERO(&fullset);
    72         int ret = sched_getaffinity(getpid(), sizeof(fullset), &fullset);
    73         if( ret != 0 ) abort | "sched_getaffinity failed with" | errno | strerror( errno );
    74         int cnt = CPU_COUNT(&fullset);
    75 
    7669        this.procs = alloc(options.clopts.nprocs);
    7770        for(i; options.clopts.nprocs) {
    7871                (this.procs[i]){ "Benchmark Processor", this.self };
    79 
    80                 int c = 0;
    81                 int n = 1 + (i % cnt);
    82                 for(int j = 0; j < CPU_SETSIZE; j++) {
    83                         if(CPU_ISSET(j, &fullset)) n--;
    84                         if(n == 0) {
    85                                 c = j;
    86                                 break;
    87                         }
    88                 }
    89                 cpu_set_t localset;
    90                 CPU_ZERO(&localset);
    91                 CPU_SET(c, &localset);
    92                 ret = pthread_setaffinity_np(this.procs[i].kernel_thread, sizeof(localset), &localset);
    93                 if( ret != 0 ) abort | "sched_getaffinity failed with" | ret | strerror( ret );
    9472
    9573                #if !defined(__CFA_NO_STATISTICS__)
     
    168146        int waited = 0;
    169147        for() {
    170                 int sockfd = server_fd;
    171                 __CONST_SOCKADDR_ARG addr;
    172                 addr.__sockaddr__ = (struct sockaddr *)&address;
    173                 socklen_t addrlen = sizeof(address);
    174                 ret = bind( sockfd, addr, addrlen );
     148                ret = bind( server_fd, (struct sockaddr *)&address, sizeof(address) );
    175149                if(ret < 0) {
    176150                        if(errno == EADDRINUSE) {
  • libcfa/src/concurrency/kernel_private.hfa

    rd3261710 r6a33e40  
    219219
    220220        // Step 2 : acquire our local lock
    221         /*paranoid*/ verify(!kernelTLS().sched_lock);
    222221        __atomic_acquire( &kernelTLS().sched_lock );
    223222        /*paranoid*/ verify(kernelTLS().sched_lock);
  • libcfa/src/concurrency/ready_queue.cfa

    rd3261710 r6a33e40  
    201201uint_fast32_t ready_mutate_lock( void ) with(*__scheduler_lock) {
    202202        /* paranoid */ verify( ! __preemption_enabled() );
     203        /* paranoid */ verify( ! kernelTLS().sched_lock );
    203204
    204205        // Step 1 : lock global lock
     
    206207        //   to simply lock their own lock and enter.
    207208        __atomic_acquire( &write_lock );
    208 
    209         // Make sure we won't deadlock ourself
    210         // Checking before acquiring the writer lock isn't safe
    211         // because someone else could have locked us.
    212         /* paranoid */ verify( ! kernelTLS().sched_lock );
    213209
    214210        // Step 2 : lock per-proc lock
Note: See TracChangeset for help on using the changeset viewer.