From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60355) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bErhK-0003Vw-JW for qemu-devel@nongnu.org; Mon, 20 Jun 2016 01:24:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bErhG-0003T8-Bb for qemu-devel@nongnu.org; Mon, 20 Jun 2016 01:24:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40189) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bErhG-0003T4-5t for qemu-devel@nongnu.org; Mon, 20 Jun 2016 01:24:30 -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> <576762A5.9000906@cn.fujitsu.com> From: Jason Wang Message-ID: <57677E09.6090004@redhat.com> Date: Mon, 20 Jun 2016 13:24:25 +0800 MIME-Version: 1.0 In-Reply-To: <576762A5.9000906@cn.fujitsu.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable 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: Zhang Chen , qemu devel Cc: "eddie . dong" , zhanghailiang , Li Zhijian , "Dr . David Alan Gilbert" On 2016=E5=B9=B406=E6=9C=8820=E6=97=A5 11:27, Zhang Chen wrote: > > > On 06/20/2016 11:03 AM, Jason Wang wrote: >> >> >> On 2016=E5=B9=B406=E6=9C=8817=E6=97=A5 10:25, Zhang Chen wrote: >>> Hi~ jason. >>> >>> I tried a lot of ways to make it run in compare thread, but it not=20 >>> work. >>> >>> Because that: >>> void g_main_context_push_thread_default (GMainContext *context); >>> Acquires context and sets it as the thread-default context for the=20 >>> current thread. >>> >>> So, this function g_main_context_push_thread_default() just can set=20 >>> thread-default context, >>> not the global default context. and I can't find a function to set=20 >>> global default context in glib. >>> The qemu's QIOChannel uses g_source_attach(source, NULL); to attach=20 >>> 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=20 >>> thread-default context. >>> So I read glib codes find that: >>> guint >>> g_source_attach (GSource *source, >>> GMainContext *context) >>> { >>> ..... >>> if (!context) >>> context =3D 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=20 >>> thread in this way. >>> Do you have any comments about that?=20 >> >> 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? Yes, we need convince them. I believe we don't do this in the past is=20 because there's no users. > If no affect and works good,I will send a independent patch > for this. > Right, if it works, please send a RFC and explain why it is needed. Thanks > > Thanks > Zhang Chen