Jan Kiszka wrote:
> Petr Cervenka wrote:
>> I ran a test during last weekend (and nothing wrong happened). But the 
>> /proc/xenomai/stat output is strange. Probably some type cast error, because 
>> 18446744071739514846 = 0xFFFFFFFF8A939FDE and the appropriate value perhaps 
>> should be 0x000000008A939FDE = 2324930526.
>>
>> CPU  PID    MSW        CSW        PF    STAT       %CPU  NAME
>>   0  0      0          18446744071739514846 0     00500088   69.8  ROOT/0
>>   1  0      0          18446744071675175740 0     00500080   23.2  ROOT/1
>>   0  5299   0          351459     0     00300182    0.0  
>> LOGGER_TASK_1804289383
>>   0  5100   8          283613     0     00300186    0.0
>>   0  5317   0          40591      0     00300182    0.0
>>   0  5034   2          2330696    0     00300184    0.0  MAIN_TASK_2056
>>   0  5318   5          18446744071736105613 3     00300180   29.5  
>> REG_TASK_2056
>>   0  5319   28         36         0     00300182    0.0  WORK_TASK_2056
>>   0  5321   38926      39159      0     00300380    0.0  CERECV_2056
>>   0  5323   1159385    2438330    0     00300181    0.0  CESEND_2056
>>   1  5710   0          18446744071675175740 0     00300184   76.8  
>> HARDWARE_KERNEL
>>   0  0      0          18446744071964064315 0     00000000    0.7  IRQ520: 
>> [timer]
>>   1  0      0          232145209  0     00000000    0.0  IRQ520: [timer] 
> 
> OK, at least this bug is a bit easier to fix. Please try this patch
> (which also takes the chance and extends the range of our stat counters
> a bit):
> 
> Index: xenomai/include/nucleus/stat.h
> ===================================================================
> --- xenomai/include/nucleus/stat.h    (Revision 4060)
> +++ xenomai/include/nucleus/stat.h    (Arbeitskopie)
> @@ -84,20 +84,20 @@ do { \
>  
>  
>  typedef struct xnstat_counter {
> -     int counter;
> +     unsigned long counter;
>  } xnstat_counter_t;
>  
> -static inline int xnstat_counter_inc(xnstat_counter_t *c)
> +static inline unsigned long xnstat_counter_inc(xnstat_counter_t *c)
>  {
>       return c->counter++;
>  }
>  
> -static inline int xnstat_counter_get(xnstat_counter_t *c)
> +static inline unsigned long xnstat_counter_get(xnstat_counter_t *c)
>  {
>       return c->counter;
>  }
>  
> -static inline void xnstat_counter_set(xnstat_counter_t *c, int value)
> +static inline void xnstat_counter_set(xnstat_counter_t *c, unsigned long 
> value)
>  {
>       c->counter = value;
>  }

OK to apply those bits?

Jan

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to