From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39037) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bEps5-0004FX-C7 for qemu-devel@nongnu.org; Sun, 19 Jun 2016 23:27:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bEps0-0008Jf-UF for qemu-devel@nongnu.org; Sun, 19 Jun 2016 23:27:32 -0400 Received: from [59.151.112.132] (port=37274 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bEps0-0008IV-7F for qemu-devel@nongnu.org; Sun, 19 Jun 2016 23:27:28 -0400 References: <1464180653-12637-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> <574BB14F.6050303@redhat.com> <574D0AEF.7080804@cn.fujitsu.com> <574D2C3B.4000603@redhat.com> <574D4B24.3010603@cn.fujitsu.com> <574D7040.6090602@redhat.com> <57635FA4.60907@cn.fujitsu.com> <57675D18.6030207@redhat.com> From: Zhang Chen Message-ID: <576762A5.9000906@cn.fujitsu.com> Date: Mon, 20 Jun 2016 11:27:33 +0800 MIME-Version: 1.0 In-Reply-To: <57675D18.6030207@redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [RFC PATCH V4 0/4] Introduce COLO-compare List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jason Wang , qemu devel Cc: "eddie . dong" , zhanghailiang , Li Zhijian , "Dr . David Alan Gilbert" On 06/20/2016 11:03 AM, Jason Wang wrote: > > > On 2016年06月17日 10:25, Zhang Chen wrote: >> Hi~ jason. >> >> I tried a lot of ways to make it run in compare thread, but it not work. >> >> Because that: >> void g_main_context_push_thread_default (GMainContext *context); >> Acquires context and sets it as the thread-default context for the >> current thread. >> >> So, this function g_main_context_push_thread_default() just can set >> thread-default context, >> not the global default context. and I can't find a function to set >> global default context in glib. >> The qemu's QIOChannel uses g_source_attach(source, NULL); to attach >> GSource. >> g_source_attach (GSource *source, >> GMainContext *context); >> >> context >> a GMainContext (if NULL, the default context will be used). >> >> But he not say "the default context" is global default context or >> thread-default context. >> So I read glib codes find that: >> guint >> g_source_attach (GSource *source, >> GMainContext *context) >> { >> ..... >> if (!context) >> context = g_main_context_default (); >> ..... >> } >> >> g_main_context_default () >> Returns the global default main context. >> >> So...I think we can't make qemu_chr_add_handlers() run in colo thread >> in this way. >> Do you have any comments about that? > > How about (like I suggest previously) just use > > g_souce_attach(x, g_main_context_get_thread_default()); > > in qemu's QIOChannel code? > > > I feel it seems can work, and will try it. but I don't know how this change in qemu's QIOChannel code will affect the other code. needs other people confirm it? If no affect and works good,I will send a independent patch for this. Thanks Zhang Chen > > > . > -- Thanks zhangchen