Show
Ignore:
Timestamp:
05/02/08 15:58:56 (4 years ago)
Author:
ppalmers
Message:

- transmit AMDTP packets earlier (3 to 4 packets instead of 6)

adheres to the spec.

- extra's in debug code
- switched off all extended debugging features by default

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/src/debugmodule/debugmodule.cpp

    r1074 r1099  
    332332 
    333333    mb_overruns = 0; 
    334     mb_initialized = 1; 
    335  
    336     if (pthread_create(&mb_writer_thread, NULL, &mb_thread_func, (void *)this) != 0) 
     334     
     335    #if DEBUG_MESSAGE_BUFFER_REALTIME 
     336    /* Get the client thread to run as an RT-FIFO 
     337        scheduled thread of appropriate priority. 
     338    */ 
     339    pthread_attr_t attributes; 
     340    struct sched_param rt_param; 
     341    pthread_attr_init(&attributes); 
     342    int res; 
     343    if ((res = pthread_attr_setinheritsched(&attributes, PTHREAD_EXPLICIT_SCHED))) { 
     344        fprintf(stderr, "Cannot request explicit scheduling for RT thread  %d %s\n", res, strerror(res)); 
     345        return -1; 
     346    } 
     347    if ((res = pthread_attr_setdetachstate(&attributes, PTHREAD_CREATE_JOINABLE))) { 
     348        fprintf(stderr, "Cannot request joinable thread creation for RT thread  %d %s\n", res, strerror(res)); 
     349        return -1; 
     350    } 
     351    if ((res = pthread_attr_setscope(&attributes, PTHREAD_SCOPE_SYSTEM))) { 
     352        fprintf(stderr, "Cannot set scheduling scope for RT thread %d %s\n", res, strerror(res)); 
     353        return -1; 
     354    } 
     355 
     356    if ((res = pthread_attr_setschedpolicy(&attributes, SCHED_FIFO))) { 
     357 
     358    //if ((res = pthread_attr_setschedpolicy(&attributes, SCHED_RR))) { 
     359        fprintf(stderr, "Cannot set FIFO scheduling class for RT thread  %d %s\n", res, strerror(res)); 
     360        return -1; 
     361    } 
     362 
     363    memset(&rt_param, 0, sizeof(rt_param)); 
     364    rt_param.sched_priority = DEBUG_MESSAGE_BUFFER_REALTIME_PRIO; 
     365 
     366    if ((res = pthread_attr_setschedparam(&attributes, &rt_param))) { 
     367        fprintf(stderr, "Cannot set scheduling priority for RT thread %d %s\n", res, strerror(res)); 
     368        return -1; 
     369    } 
     370 
     371    if ((res = pthread_create(&mb_writer_thread, &attributes, mb_thread_func, (void *)this))) { 
     372        fprintf(stderr, "Cannot set create thread %d %s\n", res, strerror(res)); 
     373        mb_initialized = 0; 
     374    } else { 
     375        mb_initialized = 1; 
     376    } 
     377    #else 
     378    if (pthread_create(&mb_writer_thread, NULL, &mb_thread_func, (void *)this) != 0) { 
    337379         mb_initialized = 0; 
     380    } else { 
     381        mb_initialized = 1; 
     382    } 
     383    #endif 
    338384#endif 
    339385 
     
    538584{ 
    539585    unsigned int ntries; 
    540     struct timespec wait = {0,50000}; 
     586    struct timespec wait = {0, DEBUG_MESSAGE_BUFFER_COLLISION_WAIT_NSEC}; 
    541587    // the backlog 
    542     ntries=1
     588    ntries=DEBUG_MESSAGE_BUFFER_COLLISION_WAIT_NTRIES
    543589    while (ntries) { // try a few times 
    544590        if (pthread_mutex_trylock(&bl_mb_write_lock) == 0) { 
     
    571617    } 
    572618 
    573     ntries=1
     619    ntries=6
    574620    while (ntries) { // try a few times 
    575621        if (pthread_mutex_trylock(&mb_write_lock) == 0) { 
  • trunk/libffado/src/libstreaming/StreamProcessorManager.cpp

    r1046 r1099  
    970970 
    971971    debugOutputExtreme( DEBUG_LEVEL_VERBOSE, 
    972                         "transfer at %llu ticks...\n", 
    973                         m_time_of_transfer); 
     972                        "transfer period %d at %llu ticks...\n", 
     973                        m_nbperiods, m_time_of_transfer); 
    974974 
    975975    // this is to notify the client of the delay that we introduced by waiting