At Tue, 28 Oct 2014 17:52:04 +0800, Jinzhi Chen wrote: > > [1 <multipart/alternative (7bit)>] > [1.1 <text/plain; UTF-8 (7bit)>] > sorry, i'thinks `tid_max` should be set to 1,
Hi Jinzhi, Thanks for your report. It seems to be reasonable. Current tracing subsystem has a problem as you say. tid_max should be set to 1 and tid_map should have bitmap area for it as soon as possible in the initialization process of sheep. In addition, sd_thread_create() must update tid_max. Seems that you understand the problem well, could you prepare a patch for it if you have time? Or could you add an issue to our launchpad bugtracker? Thanks, Hitoshi > > On Tue, Oct 28, 2014 at 5:29 PM, Jinzhi Chen <nxtjin...@gmail.com> wrote: > > > hi, > > > > I'm currently using sheepodg v0.8.3, configure with --enable-debug & start > > sheep with journal directory. > > > > > > during `journal_file_init` progress, journal thread is created. > > but the `tid_max` is not initialized until `wq_trace_init` is called, > > which is called just after journal init progress. > > Thus the journal thread enter into infinite loop when trace is enabled. > > (below is related code) > > > > > > static void trace_set_tid_map(int tid) > > { > > sd_mutex_lock(&tid_map_lock); > > if (tid > tid_max) { > > size_t old_tid_max = tid_max; > > > > /* enlarge bitmap size */ > > ## because tid_max is not initialized (which is 0), the > > journal thread enter into loop > > while (tid > tid_max) > > tid_max *= 2; > > > > tid_map = alloc_bitmap(tid_map, old_tid_max, tid_max); > > } > > set_bit(tid, tid_map); > > sd_mutex_unlock(&tid_map_lock); > > } > > > > I think `tid_max` should be initialized to TID_MAX_DEFAULT in to avoid > > issue. > > thus, change lib/work.c > > > > -static size_t tid_max; > > +static size_t tid_max = TID_MAX_DEFAULT > > > > & delete related code in wq_trace_init > > > > Correct me if I'm wrong. > > > > > > Thanks > > > [1.2 <text/html; UTF-8 (quoted-printable)>] > > [2 <text/plain; us-ascii (7bit)>] > -- > sheepdog mailing list > sheepdog@lists.wpkg.org > http://lists.wpkg.org/mailman/listinfo/sheepdog -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog