From patchwork Mon Mar 27 09:06:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joshua Otto X-Patchwork-Id: 9645687 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id AA9A5602C8 for ; Mon, 27 Mar 2017 09:09:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 91F2827A98 for ; Mon, 27 Mar 2017 09:09:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 869E128338; Mon, 27 Mar 2017 09:09:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 381E627A98 for ; Mon, 27 Mar 2017 09:09:51 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csQco-0004kM-RX; Mon, 27 Mar 2017 09:07:42 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csQcn-0004ja-Fc for xen-devel@lists.xenproject.org; Mon, 27 Mar 2017 09:07:41 +0000 Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id B2/52-16497-C56D8D85; Mon, 27 Mar 2017 09:07:40 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrGIsWRWlGSWpSXmKPExsXSmNjwSTfm2o0 Igxl/+Cy+b5nM5MDocfjDFZYAxijWzLyk/IoE1ozLLe1sBdt5Ky7tPc/awLiDq4uRk0NIYAmT xJ5GZhCbRcBH4kzrQsYuRi4g+z+TxOUrE1hBEmwC6hLbF21kB7FFBJQk7q2azARSxCxwkFHiz PnDYN3CAhkS59fcY4WYpCrx+8IfJhCbV8BZ4vL9qywgtoSAnMTNc51g9ZwCLhLHLh5ig7jCWe La4V6gzRxANcUSl1fGQJSHSHRsfcEIYetITGp7wAphx0vs3z+bCaLcROLBFE+IsKhE9+FnYPd LCMxnlDiwZBrrBEbhBYwMqxg1ilOLylKLdI2M9JKKMtMzSnITM3N0DQ1M9XJTi4sT01NzEpOK 9ZLzczcxAsOznoGBcQfjnna/Q4ySHExKorwfTt+IEOJLyk+pzEgszogvKs1JLT7EKMPBoSTB6 3wFKCdYlJqeWpGWmQOMFJi0BAePkgjvkctAad7igsTc4sx0iNQpRkUpcd67IAkBkERGaR5cGy w6LzHKSgnzMjIwMAjxFKQW5WaWoMq/YhTnYFQS5hUC2c6TmVcCN/0V0GImoMWH54MtLklESEk 1MHpIT+v76nHpH/PG7N55R/bn9MvfW3jA5B3DY51ujW/dOt7fLn1nUZ33sOI1y4HSo1r3A+Tu LOVob5txRCfxnG9f3QRfr2XPpuiK7kmOuKdU9Xc5Y6WR974LhxO7tjn+zWRud0s8UrvlcsOkk 7/qOu10mFrncrp3CAip7Pj634XtxMwO+bk7mJRYijMSDbWYi4oTAfiPylTJAgAA X-Env-Sender: jtotto@uwaterloo.ca X-Msg-Ref: server-4.tower-206.messagelabs.com!1490605659!91474103!1 X-Originating-IP: [129.97.128.242] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.2.3; banners=-,-,- X-VirusChecked: Checked Received: (qmail 55340 invoked from network); 27 Mar 2017 09:07:40 -0000 Received: from mailchk-m06.uwaterloo.ca (HELO mailchk-m06.uwaterloo.ca) (129.97.128.242) by server-4.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 27 Mar 2017 09:07:40 -0000 Received: from eagle.uwaterloo.ca (cs-auth-dc-129-97-60-142.dynamic.uwaterloo.ca [129.97.60.142]) (authenticated bits=0) by mailchk-m06.uwaterloo.ca (8.14.4/8.14.4) with ESMTP id v2R97DTJ023326 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NO); Mon, 27 Mar 2017 05:07:30 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 mailchk-m06.uwaterloo.ca v2R97DTJ023326 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uwaterloo.ca; s=default; t=1490605653; bh=g6i576lftf0Wn40vDMAQXY5fmq+VHE8PK1Nj4MsLN5k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Cb3Of9Jx0N64qrp99Ml18nYmFWgEYTQdE6BxqjskN88SXXYDRuI49pCIUwPYtkMiD TF2P4x2Hze+xxS/7ERzK5yDMDs9Cb3K8aTXm3b5V1HglkVSalSjyK95wDs+yM0jgl8 +TMUcRiiv3UgGHp5us+b+BZY1o23VqyejGFP4QWI= From: Joshua Otto To: xen-devel@lists.xenproject.org Date: Mon, 27 Mar 2017 05:06:15 -0400 Message-Id: <1490605592-12189-4-git-send-email-jtotto@uwaterloo.ca> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> References: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> X-UUID: c78c745e-a264-43e4-aab5-0f0c1992178c X-Miltered: at mailchk-m06 with ID 58D8D641.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Virus-Scanned: clamav-milter 0.99.2 at mailchk-m06 X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (mailchk-m06.uwaterloo.ca [129.97.128.141]); Mon, 27 Mar 2017 05:07:33 -0400 (EDT) Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, czylin@uwaterloo.ca, Joshua Otto , imhy.yang@gmail.com, hjarmstr@uwaterloo.ca Subject: [Xen-devel] [PATCH RFC 03/20] libxc/xc_sr_restore.c: use write_record() in send_checkpoint_dirty_pfn_list() X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Teach send_checkpoint_dirty_pfn_list() to use write_record()'s new fd parameter, avoiding the need for a manual writev(). No functional change. Signed-off-by: Joshua Otto Reviewed-by: Andrew Cooper Acked-by: Wei Liu --- tools/libxc/xc_sr_restore.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/tools/libxc/xc_sr_restore.c b/tools/libxc/xc_sr_restore.c index ee06b3d..481a904 100644 --- a/tools/libxc/xc_sr_restore.c +++ b/tools/libxc/xc_sr_restore.c @@ -420,7 +420,6 @@ static int send_checkpoint_dirty_pfn_list(struct xc_sr_context *ctx) int rc = -1; unsigned count, written; uint64_t i, *pfns = NULL; - struct iovec *iov = NULL; xc_shadow_op_stats_t stats = { 0, ctx->restore.p2m_size }; struct xc_sr_record rec = { @@ -467,35 +466,17 @@ static int send_checkpoint_dirty_pfn_list(struct xc_sr_context *ctx) pfns[written++] = i; } - /* iovec[] for writev(). */ - iov = malloc(3 * sizeof(*iov)); - if ( !iov ) - { - ERROR("Unable to allocate memory for sending dirty bitmap"); - goto err; - } - + rec.data = pfns; rec.length = count * sizeof(*pfns); - iov[0].iov_base = &rec.type; - iov[0].iov_len = sizeof(rec.type); - - iov[1].iov_base = &rec.length; - iov[1].iov_len = sizeof(rec.length); - - iov[2].iov_base = pfns; - iov[2].iov_len = count * sizeof(*pfns); - - if ( writev_exact(ctx->restore.send_back_fd, iov, 3) ) - { - PERROR("Failed to write dirty bitmap to stream"); + rc = write_record(ctx, ctx->restore.send_back_fd, &rec); + if ( rc ) goto err; - } rc = 0; + err: free(pfns); - free(iov); return rc; }