From patchwork Wed Jun 21 16:24:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Kagan X-Patchwork-Id: 9802305 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 6835A60329 for ; Wed, 21 Jun 2017 16:42:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 581BE28631 for ; Wed, 21 Jun 2017 16:42:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4C3AC28634; Wed, 21 Jun 2017 16:42:19 +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=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 49A7428631 for ; Wed, 21 Jun 2017 16:42:17 +0000 (UTC) Received: from localhost ([::1]:55112 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNihs-0005Cj-Cd for patchwork-qemu-devel@patchwork.kernel.org; Wed, 21 Jun 2017 12:42:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35431) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNiSg-0007aH-22 for qemu-devel@nongnu.org; Wed, 21 Jun 2017 12:26:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNiSd-0004jx-EK for qemu-devel@nongnu.org; Wed, 21 Jun 2017 12:26:34 -0400 Received: from mail-eopbgr30133.outbound.protection.outlook.com ([40.107.3.133]:11974 helo=EUR03-AM5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNiSd-0004jO-30 for qemu-devel@nongnu.org; Wed, 21 Jun 2017 12:26:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=yPDen0AI36SKSyhz/okypDQFc0Y5A5V7MOErVxrp100=; b=FWpK6/+Dwd0P9EjCWigLg6RgauJWytEcQVZym08EdIZlcTUBCa+otN1R9K8y2krAJqayGUcpxaU9Lrez7HoEuqO5qlkWOPosFYytwqRBc1L0RzLw7mitC0h8WArwlyYkl7OQCvusSHsc2PmclR9fBB8pDh2/YEKkVdYRaiOnHzM= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none; nongnu.org; dmarc=none action=none header.from=virtuozzo.com; Received: from rkaganb.sw.ru (195.214.232.6) by HE1PR08MB0842.eurprd08.prod.outlook.com (2a01:111:e400:59b2::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1178.14; Wed, 21 Jun 2017 16:26:24 +0000 From: Roman Kagan To: qemu-devel@nongnu.org, Paolo Bonzini , Eduardo Habkost Date: Wed, 21 Jun 2017 19:24:19 +0300 Message-Id: <20170621162424.10462-19-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170621162424.10462-1-rkagan@virtuozzo.com> References: <20170621162424.10462-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HK2P15301CA0022.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::32) To HE1PR08MB0842.eurprd08.prod.outlook.com (2a01:111:e400:59b2::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6634127f-a283-499f-11ce-08d4b8c244f0 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:HE1PR08MB0842; X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0842; 3:XhLAJWJvLLj3YteF+b8H2Wyl6WuB8TRUYmQRpHKcda1X2A/sIF1Wd7Qqd0b0R41G6fKNVm8fAn4mMNqp4A8yigUovvYvakg1ga1GqS3kvk2fb4r/k8tDv0bJU8YJoKkZ5bRvk2/isW0B+fMOTeRvhuojsRe4h7jCJn0ioAjt/vFeZPMUJGPAG1ro3dpTlMz3bnurE894Lcu/7fGXZjKvlx+1pHezFt2cuE3Hm9tuMcq1TdjUuCT5ie63WIJAYKFf2Ss7goujm+XOCGZ7mkO4Syou/YmZH2caTGUfDiqllMyhL6idtxlNo4SXpJymukwlDKnWlNyecMv/1F4NauDvcQ==; 25:+UGTMIfno1rwhLs26qm0Z508zLodLS+B3mHpntAY8wGXTS5xp4p+YK7To3tw3kXiFGc2g0rk2S4I6dCGJ7sAYlPCfquVVaoOLuh160BQZmG/BZYqicyBlh0ysN1qARf+my00RpZ0Pae9q/GlW4wfi/tfU2/X5uN2dVuxdh/2Vj3avw8kXj2HkjV9GTiGx4WLqm2KCoGrfm9dkmZgpPTwxj8L32Q99vA7KGGcJ7ck5RFeihyJbRqLR7Lu+Jk980PGD+dWYhWR7BLC/RmW3Hu+YNj01FklLJbxuH9W+wDsIyYr6SZ/MaNGxwiZbm8Bet1BM388+u7OXpMvf5jxKbcvWWUGOKYqcnGhwrzS95Ua4YQf3siibf0LSQQunTkafHJtO1ICckyhhwHdhsLyzrBQje6bLjMbWZzEIS5V21/EIaNTGc5ZojvM8BVX+Y9bGsNsxjBLe04stAxQaqJ08PAu4ZMR+qQNT+4bdpR09m/zwzE= X-MS-TrafficTypeDiagnostic: HE1PR08MB0842: X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0842; 31:jmVOmrP/XrgnjKUtPDhc1CPrfsvIwW7Olif5h56tFdPp0NO7xkdrMLtSzOT24KpSh8lixpxauM8qWNqDVcMEPPOCsyEbo5nkIEYcVPg6KwBxwaA7fPRpqRZIUG0pqWuE8f3ZSdycF3ONl+wbQNRDPmbc1Uplq6SloDJKy6nyIT1iNuuwoVLbwRxAe6RkDshLh+j9ChYrv1yqu0p8utNuylYEXQY4lf23CzKiSJ78Eno=; 20:GhAEjLKamwE/6/pML5RW9fh4bo/hIf+3RDFP92MX1w2VrOESJ/N5d9xJ+91WEbwUqlyO3Sv9IHUSa2QQb/d8XpgGyOE0xZ4Bjtm235UYTKUNTbxdmH1lQ96Cjfdbb6RATOS3qPGb9hYIXFvriODlCAPs6EqTFitQP6B6lFCTy9ImN0Zfk5TSrOcqrFuGHzOnCmQU0eEFWrA0JvOEK2jZDg3cso5zUCdxA+Q2tjwyY3SEnQpLTThjegj/DF6Dvh5BAQn03kWgtEbPegyQcDfNmzBNGoMf/Shz4TrWsGRTbYuEwC+iPeeQxI/FQdpEdhuqGlxviFpKhY4TKl+dNMQ+NyUWT+uu+IcK8HrHt76q1xbTCEli3RAmsHJSw7xX4iCQkcOZFhv3wO6DH8fQfDa1H0k0620xjDqib13U/g0eKhE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6041248)(20161123555025)(20161123558100)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR08MB0842; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR08MB0842; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR08MB0842; 4:ShFVzY2wnAjkd5GOakW2PVvQAiw16QNEudAgX0Mizq?= =?us-ascii?Q?E39CvUP+sWgyGTsCV/S4GqxtMhdWRDnws2Jjr8wdnWw+V5lwhAGSLCWL5mTP?= =?us-ascii?Q?rd+f1+7Bw+pMghnNwNnEBTU5n+amDqRKdwQ6XAChn5Rm9SAAM53iS/ANlbt5?= =?us-ascii?Q?RDbmFfwflQctuUy792HaiCDLJxlVKlFk9Z/fEZom/ejtknqJUXw4fTYbaBrE?= =?us-ascii?Q?+11Vm4/jPNrweKrm+xqD2j8wjoV4HT5yCoKjGlk8HrP+zig7EXUr4/llikUX?= =?us-ascii?Q?VHq5+9/v10SbsWTwjPcECzkfqzF5U0+0zi0+dAmbRXi9wiLDoNXSb8iChvLe?= =?us-ascii?Q?81xPcU9Y5ygZMK9zDdBiaPApTr3qIHYwbMljX8en6yGmWFln8LjAH4C0wfH+?= =?us-ascii?Q?BttsR8/At+72jJdDjrql/C2IesN2dgvzEYVVc/kvkWMSSilzqhHUiHMy6KPN?= =?us-ascii?Q?xXmDYbDQVXJ/45KLSnIhnJ5atQMoiqsy/11pCFBT1v+OdglloPPXvUC8Po4C?= =?us-ascii?Q?ya4qbglvWc29KgKASby/d4QmwGoYkZouNFwbOMQ2MzUvhGbj6HVSBjcNXxfy?= =?us-ascii?Q?Nz68NGv3ZlLtv3waH5YUOlJEZI6Z6qUACUcvZV3YWJYS0tv5odg01HQgcRmB?= =?us-ascii?Q?RfYG5YZszwqQQVpoAGmKzRGCnpRmLsBVtPwGoBKCFWsLjaQdS5CV6sa4qkE1?= =?us-ascii?Q?jVlMkayamDUreTALZjGMFYJED4k2HfvT8ti/bIalpr/swKQ9PY23J8WREJqk?= =?us-ascii?Q?whz8Z8tMYdXnaemUnA+joLpGPwKjQ0DZC1+C+6HKct+bWTAFIs7lAxiTMp10?= =?us-ascii?Q?/49yIjRkxjurmZyZj8Sz/DRDper7Cdi1RsbnKe1n+i+szO6SHrhSFxQ+e/nj?= =?us-ascii?Q?6YZan4OgY1CJGCrtIXHDRyyVxlcvi7ps6J72B4yAd0kUm4Avcqq/YrzDdnFP?= =?us-ascii?Q?6e+G9fr66KQ98VbekUEBzuhsgLimQfXuwHbv3u+qbMUgI7ud4Otz84DtTgZV?= =?us-ascii?Q?1hpKzEqJpN7Xen0+xxZjWfAyWZ0Agm5E6anG88lZDQ+H9BvzF38R066MLoLO?= =?us-ascii?Q?mUADkWbrRp2uqcqZC0iISCW7hIgavJapwMeDgNDvvkUY4C8Ap+um1kNxkU4y?= =?us-ascii?Q?IAlLG2sbqza7r4H+2FdTyJjnBpjQ66?= X-Forefront-PRVS: 0345CFD558 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39400400002)(39410400002)(39840400002)(39450400003)(53936002)(50226002)(305945005)(81166006)(7736002)(6486002)(189998001)(8676002)(50986999)(76176999)(66066001)(6116002)(3846002)(2906002)(47776003)(25786009)(5660300001)(36756003)(1076002)(5003940100001)(6506006)(53416004)(42186005)(6666003)(4326008)(2950100002)(6512007)(38730400002)(86362001)(478600001)(33646002)(54906002)(50466002); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR08MB0842; H:rkaganb.sw.ru; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR08MB0842; 23:Y4EVzDg3wkfKwxo06NHfpepY3/ucPHp1F91JThRIv?= =?us-ascii?Q?a30GWh2f/0HVLE6kDpXQDrlj9h630GG9AE+MMioG5VqlGsy7/UgohRAAqvQc?= =?us-ascii?Q?IcTZcHanRohwt8yCsep41Taw4cbINBDJCASul0BVqczXIBASvwRGJjCgpAu6?= =?us-ascii?Q?QcRRK0euHl8/Vzor73llmZgAEoGkRDb647sK5BOh0XeSsAxkIhkFeNPPdo7K?= =?us-ascii?Q?clmrUkixsRGYqD0aSh1fUi73YXb2EldHtykqGcQl0haRcOvl3OgeDJl1kHfg?= =?us-ascii?Q?VqiY0v0ys9FTbSJ1YxyQ+g20OtvQsnWx9tyOO1eSAW2oF4sRRnDuA1i+aUt+?= =?us-ascii?Q?eXMyfYrCEF9h2Eg4UC4+ISq84MFPLhYpX5+e5Pw/5WbTF99tBcwn4rxLlOPd?= =?us-ascii?Q?tT2CWO8djDEimqB40eOhwYQHY4hpFd20bhk5D7rJ01uYlqVHQGZmELgGYYaL?= =?us-ascii?Q?0rTMJJn3uMVsS6U2c8nMW45WTlwdTn7rjvqzHKhVG/1mp3ESrMG+IWWKM6I5?= =?us-ascii?Q?09B01Uyv7sVbmb5PLwEzKl5m2CTNx+4cPlxAi2ERc5ZQcltcyDFopY+fuUrO?= =?us-ascii?Q?ocFYLAnsZIBwj0TZUjh3THqHYZHsNV5e7KyLijSsvQH7hDOD3YPywe96zmuU?= =?us-ascii?Q?IZ8Wf0UI1HbMLmi+Nwousgl9XgKVwBHWYf7KU2W/zth57+V6g4SQQyQczSDG?= =?us-ascii?Q?5v4O5jqPppnXDNXFBlU9DWMCsKFH6AQLoRqh0Km4Fxb5Y+iOsNTTEO0UlgE9?= =?us-ascii?Q?R9AsK/wHUXMkFQfy6Uqd2FlusoarYR6AlKKIoYn2xVJGx4abVeIuzf4XDgCc?= =?us-ascii?Q?5+jCzvUQZGg2a+AoTedIktdU3R4rZ0xkY19POt5tRu3QVycg7j9Gng0oSOp0?= =?us-ascii?Q?kAjo0cpReAyFk6YFys5rDmvYagh62UXw89ued+h61sgjPm9NqW95LZBaSkIm?= =?us-ascii?Q?DL2QdA9iGtkz31P48c9vYAeSD4Du6sr0zyGoHvbe4Yis1Fg7r/9MhAQRimwf?= =?us-ascii?Q?7s=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR08MB0842; 6:GQhdsctSVZDsIyi9s3c/8p+ARCMkzIMz+hh8DwQ3O6?= =?us-ascii?Q?aZajN/9m5yRBp1R8vbX2ASbujQaUKChFJSBB7WxrD4zEuuH/KdwUlI5Y5xbs?= =?us-ascii?Q?tcgKLNUv+u9YzLYoI7IqX9UxKiMTykBFmEVC95+G2b41N7N6/SbkqMEfCvf1?= =?us-ascii?Q?ZixRKaJvoM58Y/AjjqE/LYJ7wd34Xk4JjdqS2bgpWc8vlbK9E3qTAe5sqdvQ?= =?us-ascii?Q?cFRucLVupUNalM6gi5SabnJCGZOBWCvcXgPr4nnvv+zKiiVoyshLiNEBgBFA?= =?us-ascii?Q?0mG6eblnGLRzFwD8z8kMXKufZwYmf30ZUbYLPRverTk0blWc/M6d0zqK5yvL?= =?us-ascii?Q?2PalcvMCrJJIG0sUpn2Pan5LL7Cekn2c5HumXl6x+AIYY2aPQVEjtPwcLHe7?= =?us-ascii?Q?I8tCLNsEf6DyCr2XFca8guhpPXoBQBA8taKXOEkgQJMCJ5hzMRfD/nW3fmm+?= =?us-ascii?Q?5yJN2lbYLiD0LwOq4URN1Vlm5ec1XJlsTwtaXZwmNV5OY9xLVXZJAl28bVcw?= =?us-ascii?Q?t6JCVDilVN68ObJfD8mfu8nhpK4HQVOmsbZUg+GSmLiEVO6S1E2kGqH0IUcn?= =?us-ascii?Q?naV+8fFMUiDUtiDN6SLU5xD3Dtu2wALrnYOkppwZCITQF9uogGzrN1tgSPyT?= =?us-ascii?Q?Z3PoDKN8y7Oc9S3TNJHV0Z4Y2yfqmVPYcfRaeYxV+qcl2lGry5OVlIFKG9OM?= =?us-ascii?Q?zhpm4vpk0x0E5CBgNiNNXeQyQIs86AtUUbMAbDtFmcAwigxWTpfLxZC41Jwc?= =?us-ascii?Q?UrrJGLUkdIe1E7Wt+kCdDad13AcXGaQ/PRRLi44Xw0EPM55cbM/Wms4+vMtO?= =?us-ascii?Q?uUvgahWu7SEWOyyDAlThrSygVy4JYajmKAIsgq4/VyWWMRCNe0Ig6RmlpPfp?= =?us-ascii?Q?8n2CfdqgHi4n3KNOCHJNBfSxEiER71/ncngI44CKQaA3gnRsKlX2JLdGvxlm?= =?us-ascii?Q?xNo0e9i0/yhKC70mOCHsRuTDZyjSh2mcFqU65ogUfkasGz+ouZj5mNr0kc7n?= =?us-ascii?Q?o=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0842; 5:FtBg22NoYKg+c0XhQh5HK7QRiw1HY3JjaYm6ydSY+qlHYBNZ5zL9iEfh5E6+MRWcgUM2CFjMQEEtdyiiKchLEUbNd0c/whm7W9rzKfp93aHMz8uVJiJWTMxYpuKQLLcB61Nkp98s58z584cvTroiqrLxW7bBjnkxLjq0lqFjgsmVgb2YbSQ/A2Yhiiki3sSOwv8vajWlRfxTXZwUuX21++D6VR+sHie2a2cqRpmLq+k4vU/MD128ytIEsQIKsuOEscVlf8nA8sSrcvSOM59EWmkZbfKYc7y1GEAMcP9ojqkjlGgc5LifwyEXKSmli2MSHAc7J17nvEruGFUNZ47nNOQf+YklUk8ayOXX/F4hTYdGC5bOOjkGLcFxH3zseZCKjfOOVO9/UOAt2U19CNdLKpFanGBCBP/PbYoin0yhifuVcU1KOkRnxNQamVQ5r7Tvj98OH/0HNo0Wy3AXrJVPZtus5Ryqkv3+w/dwg1k/lDX1xi0HRbPOEgtD61qORKWQ; 24:a/54NXaA+CYVxMU6YXO7Te+zM2OcXrT8GDCgum4jINns0udlwT3RDlvgliGdNOqK8GOXxuJ/Y9TQkEtinAq6QerpfcSe3eDxphZUOqC0TWc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0842; 7:80qjfDL5/9fiXmz9HDG6QRihcq+qDzzfSxcEBIRwSK9YPNL/7MTfqok5DfxYxaqLJlCfSlMbKmM9F5bzWp4ZM+NOKtkguktEFezquuYXdNkQfRg8cJFMLLya06++tyHm3OwGh/odYRepvKVHZz69O0FdggfRpSoKosUeVZKovVB1jE+JvCsfxOLvf0Kf/e2NZpPeDFDFxzvlXsHaEDJXMeXX85IdRY3kCeWA+dWnNQQMZs9ITEbfSWNDXBJ0cPNV2ryMo5baGrU/8Hko7/aNTxpxk4csXpFwk/vbWLYq33meOKiZTmsweSzLp3RFsJpzv6sN1Q5B4Xzix2xZjAquUShEHoXG+YJbXCPDRxT8+2SKdZm5Fq+mgVR3BLpd526/06KyP1lMSWtlCgtODEulOl4YninSXy0pLBPpqXInpmki1WNx3/HDE7/eBJv4WtfuPfyczDnHYRt3FfSeAG+Pa/ghdYw6bj1mn6pn/LfcZ58W9lIi+3Cc3y4sWCJXSc5MhvW7tcIlm3Ie6kGHguvZHdHiUYzDqIOzhcIClsF9e5rPo8YSkuIOX/ZLfTY2jjNNdIljY5UXW1/eRF4oC6EKiEqJkXL6ZhW85DX9XO81Dke2EYDHdIeNenImAhYPQWV22G3mOeYzUXcGBt2+dq4SakJdWczGgFbRle4zGVxx7FfWcE9WkJIXFTtJNwbm7MHamN42+TT1v9rZXYgF8vQoc0MkAai69+6b05/3Q451DYyqqeJu8wzJBB2YKiX1YScCKK/gFA/jyLNNZUnDiuOLE9OPyi/NM3MG9mzCUbGdCbY= X-Microsoft-Exchange-Diagnostics: 1; HE1PR08MB0842; 20:xO67hIECYT6FtSdhRNTN6EEVj8FlzMPS4/yD5SZYinZCjOGXHktYC8mXoqVAUTbaluBPki4bmfiStGfZkK6cDWDMPNq3VJvaI0DGkKtWZ1IXH+1qTpWhZhQSasentl0DsinvzCLVGKZRDUOARjwkamDFfLO0Qwi6SkbhyetrKuk= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2017 16:26:24.1612 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB0842 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.3.133 Subject: [Qemu-devel] [PATCH v2 18/23] hyperv: add synic event flag signaling 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: "Denis V . Lunev" , Evgeny Yakovlev , Igor Mammedov Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Add infrastructure to signal SynIC event flags by atomically setting the corresponding bit in the event flags page and firing a SINT if necessary. Signed-off-by: Roman Kagan --- v1 -> v2: - swapped kvm_hv_sint_route_set_sint and memory_region_set_dirty target/i386/hyperv.h | 2 ++ target/i386/hyperv.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/target/i386/hyperv.h b/target/i386/hyperv.h index cc08ebb..f171f7b 100644 --- a/target/i386/hyperv.h +++ b/target/i386/hyperv.h @@ -41,4 +41,6 @@ bool hyperv_synic_usable(void); int hyperv_post_msg(HvSintRoute *sint_route, struct hyperv_message *msg); +int hyperv_set_evt_flag(HvSintRoute *sint_route, unsigned evtno); + #endif diff --git a/target/i386/hyperv.c b/target/i386/hyperv.c index 768dc2b..a96b03b 100644 --- a/target/i386/hyperv.c +++ b/target/i386/hyperv.c @@ -17,6 +17,7 @@ #include "hw/qdev-properties.h" #include "exec/address-spaces.h" #include "sysemu/cpus.h" +#include "qemu/bitops.h" #include "migration/vmstate.h" #include "hyperv.h" #include "hyperv_proto.h" @@ -203,6 +204,37 @@ int hyperv_post_msg(HvSintRoute *sint_route, struct hyperv_message *src_msg) return 0; } +/* + * Set given event flag for a given sint on a given vcpu, and signal the sint. + */ +int hyperv_set_evt_flag(HvSintRoute *sint_route, unsigned evtno) +{ + int ret; + SynICState *synic = sint_route->synic; + unsigned long *flags, set_mask; + unsigned set_idx; + + if (evtno > HV_EVENT_FLAGS_COUNT) { + return -EINVAL; + } + if (!synic->enabled || !synic->evt_page_addr) { + return -ENXIO; + } + + set_idx = BIT_WORD(evtno); + set_mask = BIT_MASK(evtno); + flags = synic->evt_page->slot[sint_route->sint].flags; + + if ((atomic_fetch_or(&flags[set_idx], set_mask) & set_mask) != set_mask) { + memory_region_set_dirty(&synic->evt_page_mr, 0, + sizeof(*synic->evt_page)); + ret = kvm_hv_sint_route_set_sint(sint_route); + } else { + ret = 0; + } + return ret; +} + static void async_synic_update(CPUState *cs, run_on_cpu_data data) { SynICState *synic = data.host_ptr;