Re: Corosync consume 100% cpu with high Recv-Q and hung

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21/04/15 15:39, Hui Xiang wrote:
> In the master branch function qb_rb_chunk_alloc() maybe failed due
> to _rb_chunk_reclai() return -EINVAL on the condition
> that (qb_rb_space_free(rb) < (len + QB_RB_CHUNK_MARGIN)), where I got
> backtrace:
> 
> 451                     while (qb_rb_space_free(rb) < (len +
> QB_RB_CHUNK_MARGIN)) {
> (gdb) p qb_rb_space_free(rb)
> $5 = 408
> (gdb) p len
> $6 = 561
> 
> QB_RB_CHUNK_MARGIN apparently equals to 12
> #define QB_RB_CHUNK_MARGIN (sizeof(uint32_t) * (QB_RB_CHUNK_HEADER_WORDS +\
>                                                 QB_RB_WORD_ALIGN +\
>                                                 QB_CACHE_LINE_WORDS))
> 
> 
> 
> qb_rb_chunk_alloc(struct qb_ringbuffer_s * rb, size_t len)
> {
>        .....
>         /*
>          * Reclaim data if we are over writing and we need space
>          */
>         if (rb->flags & QB_RB_FLAG_OVERWRITE) {
>                 while (qb_rb_space_free(rb) < (len + QB_RB_CHUNK_MARGIN)) {
>                         int rc = _rb_chunk_reclaim(rb);
>                         if (rc != 0) {
>                                 errno = rc;
>                                 return NULL;
>                         }
>                 }
> 
> So do you know how should we control the value of 'len' and where it
> comes to avoid failing to call function qb_rb_chunk_alloc(), I can
> reproduce this problem by setting one of the corosync node nic into 5000
> mtu, others are staying at 1500 everywhere, is it related about the big
> packets throw to the ringbuffer? 
> 

I don't honestly know, I'm not familiar with that code. I'll ask one of
the libqb developers.

Chrissie

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss




[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux