From patchwork Fri May 18 11:07:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Xu X-Patchwork-Id: 916197 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40nQPv2kH8z9s1w for ; Fri, 18 May 2018 21:08:02 +1000 (AEST) Received: from localhost ([::1]:38048 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fJdEs-0006Qx-N0 for incoming@patchwork.ozlabs.org; Fri, 18 May 2018 07:07:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59899) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fJdE9-0006Od-8P for qemu-devel@nongnu.org; Fri, 18 May 2018 07:07:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fJdE6-0005ZM-3K for qemu-devel@nongnu.org; Fri, 18 May 2018 07:07:13 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:59754 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fJdE5-0005Z5-V4 for qemu-devel@nongnu.org; Fri, 18 May 2018 07:07:10 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7CC6219545D for ; Fri, 18 May 2018 11:07:09 +0000 (UTC) Received: from xz-mi.nay.redhat.com (dhcp-14-151.nay.redhat.com [10.66.14.151]) by smtp.corp.redhat.com (Postfix) with ESMTP id CB7D32026DFD; Fri, 18 May 2018 11:07:06 +0000 (UTC) From: Peter Xu To: qemu-devel@nongnu.org Date: Fri, 18 May 2018 19:07:00 +0800 Message-Id: <20180518110704.10849-1-peterx@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Fri, 18 May 2018 11:07:09 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Fri, 18 May 2018 11:07:09 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'peterx@redhat.com' RCPT:'' X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.187.233.73 Subject: [Qemu-devel] [PATCH v6 0/4] monitor: let Monitor be thread safe X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Markus Armbruster , peterx@redhat.com, "Dr . David Alan Gilbert" , Stefan Hajnoczi , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" v6: - add/drop some r-bs - address all the comments from Markus - rebase, and run some simple qtests to make sure nothing breaks v5: - collect r-bs and rebase - move two close()s outside critical section [Dave] - move comment to end of line [Stefan] v4: - fix a s/cur_mon/mon/ typo v3: - add comment for fields that are protected by monitor lock [Stefan] - drop most of patch 2, only keep the protections for mon->fds [Stefan] - add one trivial patch to add some more comments for either readline and cpu_get/cpu_set [Stefan] - add protection for monitor_fdset_get_fd() [Stefan] v2: - cc correct people... sorry. Stefan reported this problem that in the future we might start to have more threads operating on the same Monitor object. This seris try to add fundamental support for it. Please review. Thanks, Peter Xu (4): monitor: rename out_lock to mon_lock monitor: protect mon->fds with mon_lock monitor: more comments on lock-free fleids/funcs monitor: add lock to protect mon_fdsets monitor.c | 162 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 120 insertions(+), 42 deletions(-)