From patchwork Fri Jun 30 14:10:53 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 106713 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp2389729qge; Fri, 30 Jun 2017 07:13:59 -0700 (PDT) X-Received: by 10.237.45.132 with SMTP id i4mr3323904qtd.5.1498832039275; Fri, 30 Jun 2017 07:13:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498832039; cv=none; d=google.com; s=arc-20160816; b=eR4t+8dc10SsOin/csizJVKXN9MK0WplKherxWY0Yi9aIHnQ1Fowrh2+qT4pq7dGah Ve4M2WC1fxP2drtuL/2JCCps8seACJXeVIKvHk3/dvxt5sErkTvGZUbXc5j3e2KQJnSM EQjfYFwNZbhV1g3dwM2o0Mr1/22pA2iOKfRMQy7K1lG37jvi3c8hmRYTwJNKxijgn7r0 LLshMnX0KEHy1SJyNfLj1F5HkUn7x9eQ59JIOWcCdBaJWhHaibv4j3rSZ4CM2Mdnhf0X NOWlsHMZhng5T8ur0yJN3PNX9/bRUt8CC1N9Z+1VXh7sG9NSR6Hg5SRJGmn4OzNkqCX2 0FeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to:arc-authentication-results; bh=ktC5KfJ/L3xDVR7LSY7heW0vJwGw/xkGvLQPpQbEdOQ=; b=McNlB/9/zw8/+dcJkSEPCBzohXVcQpkLfoatO+6WlybeirLSuv+csBQ79G4/nELSM1 YqXV8zzx/o8Bu03LgIZqtCU4e4NMwU1VnKcgMM1F+l66gSs41caxs44ruMSFPt6BYWWn 4CambAfea79xfzGR6wYITZUc5JcCr//yMtJ2xU516EvxHrUUwHcu4PHCZFQT7ffLqPOD bpL/IO2GmfYrVtZ0N5nFvi/t5i8/K55cAiZXYT9EpDie2gDgN3JGqj1k5Y0nKd2dI+4e 656GBmw1VclL65628hC8kM6DXyTcs+lF4mf+BvK4efvIr1C6QOX4eH/YcdWkrCRtD2h3 U41A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id d51si7593119qtb.292.2017.06.30.07.13.59; Fri, 30 Jun 2017 07:13:59 -0700 (PDT) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id F176160EC3; Fri, 30 Jun 2017 14:13:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 3267560DCC; Fri, 30 Jun 2017 14:13:00 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 9839761BC5; Fri, 30 Jun 2017 14:12:53 +0000 (UTC) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10131.outbound.protection.outlook.com [40.107.1.131]) by lists.linaro.org (Postfix) with ESMTPS id DC97760DB2 for ; Fri, 30 Jun 2017 14:11:44 +0000 (UTC) Received: from DB6PR07CA0089.eurprd07.prod.outlook.com (2603:10a6:6:2b::27) by DB5PR07MB1046.eurprd07.prod.outlook.com (2a01:111:e400:5108::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.5; Fri, 30 Jun 2017 14:11:42 +0000 Received: from VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::202) by DB6PR07CA0089.outlook.office365.com (2603:10a6:6:2b::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.6 via Frontend Transport; Fri, 30 Jun 2017 14:11:41 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.241 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.241) by VE1EUR03FT062.mail.protection.outlook.com (10.152.18.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1199.9 via Frontend Transport; Fri, 30 Jun 2017 14:11:41 +0000 Received: from fihe3nok0735.emea.nsn-net.net (localhost [127.0.0.1]) by fihe3nok0735.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v5UEAuQl018820 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 30 Jun 2017 17:10:56 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0735.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v5UEAu4H018803 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Fri, 30 Jun 2017 17:10:56 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Fri, 30 Jun 2017 17:10:53 +0300 Message-ID: <20170630141056.11272-2-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170630141056.11272-1-petri.savolainen@linaro.org> References: <20170630141056.11272-1-petri.savolainen@linaro.org> X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:131.228.2.241; IPV:CAL; SCL:-1; CTRY:FI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39400400002)(39860400002)(39410400002)(39850400002)(39450400003)(39840400002)(2980300002)(199003)(189002)(9170700003)(8676002)(36756003)(81166006)(53936002)(6666003)(498600001)(189998001)(5003940100001)(8936002)(50226002)(22756006)(33646002)(305945005)(86362001)(1076002)(356003)(5660300001)(76176999)(47776003)(105596002)(48376002)(50986999)(50466002)(38730400002)(106466001)(77096006)(2351001)(6916009)(2950100002)(110136004)(2906002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB1046; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT062; 1:SyMKo0ERD+5lSjGkNMx9ERnWDXN9IdKT0GkMTKLRHzVXKM6BwIbuz3x6FLyGqSmWANy7KOAsnEl0KejHonsaUsf6aQlzlv4+Jm7bBUU2Mra4Xc0EG6iM1xyHBe08EBgaA27tvSyYmaVgEjv1CMdRpKjJgNbVWiv8BaD+qYV3iIfnwvH2/wiAD+qCUgRgL2SxYXac5y6tT0p5cEWj21KVe828Ke/s+j4rNSfSGlzU06JHh3p5Ggu4ByJLXNpl6ym5cHnBTXfOdSeMt79LxH+ikCvtb04yZt0Nw4Mn1nfC45ZnqAd+tS8+9pQI4VrCuH/zYoAUSbSDik/iD7C2ZlWNt5Bu01HI0gNLOD4oTTGDRw3lVIXh3s5/PBYZNzak41HK6kzUjYDDo9wFI/cGe47ibG8EXJ021Y377axyEOGLFq11oGBrgvr1qUlgYa0limEkNHEHtdugu+wKpfvFh1xucHK/TcgNP9FjAE4YaLhbZ5y3PKDtebE+ZIEaQrqiW1d70dS0MIBjfu88QWwhjpU9iFn9/Hub5ut13nP8xarfE8j5ugbbQi9fxvH9izUSHbbPB1QD01dapA4WhTZzMlmye0oXd7zhs5Ala7PUtRsksF7dWYIQA2lSPdLUmKawxtS1mfYhnpSbJXdeLoFsKo3oI6rPHxRfBZUX5JIJrV0aQfrTEXxK2y5oOKzg4JamzhCgqw+P47SSFPf43WgAyj3oebPf3L2+0+J1OvVY81IT7Fw/qVtkpAZWeDu3Sxx9CPX49BOLQ2al/kdfSOd6tMUSJH1YsxD6KCTkKrLzlmkpYls8+ZObk7Zg6Ke59Uk+wcaeqUCCJmaPvxTuclEzMYNY6JmqyMxMQUu3XhwzMaPmQQDTQIq3fn5EmFeWYC+AeshU MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 01863c6c-4689-4586-6985-08d4bfc1ee68 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB1046; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1046; 3:D3TiNAS3OwLcA+y5rMRgf/CL6cwJFW83TafRovkNBFbhibNb13zhrFScaG1N4dmMN5K3yAFhPGuBrsNjZt3/59GFu2VYz/fDImrexvGzuTzTBND3ABXmP/XSIuus6r+ELC4XsrlqQdHuXFEM+D6nDehQi4X3XXn4XtDQmW2fWXjMLEjORrG0suw6QThtJgyH2J2ZdphpB0AW9Vb1UirldbF2sbJwyshovbm2hphAulXdk3J7qdCvq4TpBO01ZW5AYjwcgPdMHO0eQcwCOKOAaFJEdC74p3vvzPj1ea4AYWgW+EdyEygQqx7Xu0zFYRUvklLmTfVvuJALc5qqPowanpY1x9lBki+mSRT/nhTZKhzinsq+djOooyGKn3HFxDj0cyH3ynVGLeGmimNSH9uoNyuOzZR/scZ3BybaOqsBRJL+Fek1avm0OXR3G+Yj28M0QnGsG3ELEHMODe+viBeahFcB8OTC3+f2F+xmnogRwApKlOvJfEdpcr3T599/+my3wRe+fdu/2Cx7Tjf7j1A7dN49PDKAiez7LrhhQpP94NgQHj3PaFKXcKBKclXtvJTULMUkHLWBWO9m4MyVeGiOHwhbD4sFgYeg/P7M8xP3cxvPyUgDM9qiYmS8M/qeUG4CjnLVjwIDPQsmR4ktlw/yqZ2Lboi5XB+bRVCJS7zaNmQxf448f1vX3bq899UdBLXMphxWSAPytgxzPUlO3qM+IG5YJId3R1QZlYpvAdaiwUz2kcppUyOAmOOUNP/h2Iw1lVIw3LgzfYS8oKRVn4dfRNdAHmxVLE6b/p3z/FR8nHWuG8CHc5JWnkDPLRTl9FVr9xdmhD7T10A2ULD5or2glN5zPIb3q+QnkPSgD5i3iTb3wPE5/i82oqGcOwLEX90ZRTPVARtqq/Hz4bqXUY6qaQ== X-MS-TrafficTypeDiagnostic: DB5PR07MB1046: X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1046; 25:rvGrboOoBXxH5J4aNFiWNjTNdGKCe1dcHQ8zETkfL04kAjRMlhZVFHi7L6vizrEJvyAgGZsw/gGcYTwBdmP6LDtzT+vj3dkTjtP0KNSMC7VnxtoMWWFcfgVXc9wWOgNp8OpvDjQl8j1WLXXnkZimek9PowwEDxV5ZS9fJCee9vbyE2tCRPA+aPXkQ80YVGxFgOkLzYkGJAwjhcrxBe37E0U/nunWijsLIz9oS93CeJZ4+8XjC6Kdy40PsEw5ljA/qKA86qzuEicsSsfFNuEciKj0tFmHBpOH/kdqsggTFLGNuB5lbCPL+atALBsD1u+R3xMXfB3dVyPgQ9rgyzLnBdbUFFTZbubI57Sjx34yYqofmoVPybqtZ1qazUG1x8fpLeBoV4A8Rb1WIds/2QB4bS2AraC14dTPH4SYcrpTsPLUqPOOgndteJ3NvVKSRofWPNxeYlkjEoWFSToOERY2FMiExCTBUaR5zOM21poeCCbFOnRFyZ9tzae4ArraC65fYBWm0xWB53d5iWfBbZQC1jB6XwSAYOS/o7baLMFtKg4RoVrD3Stfes1S/I8X03oKMNiET9wgPkdOnplq2RKUY4dHGdg4icQ3aIIxQT8UCwSw0A4ELJsrNRaTw/b7MgI/Tspl5pjV3gmYXeNtfh/M7tOQWpEJ8A/909L1/0/5ecAEMu5DkPTQrv12r0VjZ5I9Me9c8hhgAxV4Kwa/wOCXivyih1qf6GmX8EP5NagnwJNkJ0mVlgEKUSkKNSdEOQ5eVAY++Kn/yZtiOX3vn7Qp7zH74OP2fEitfp2dou6t4+L5+ihSuP+wEdTDFqFNJKChIsn+S6jzHpC3Fsy9iBpgjj7Czaad3mMEDFdB+Pn+QoE6oNe8kPxqnlXQX3b4jIXU6Z8t3FZgVnZVXB6TkEqHbAd5n5AIbbSgMgU84uo2A80= X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1046; 31:zGqaNLMTGcXqOdqtGggbAr3xSEmixywPCxI0giLtNIgAseYKcAh8a6vIUVAlTQvXYNWk6c0pUTnurqCj8gzV4D71VvKikTarXpMZLI8tTnKBbC317Jgh9WfbXTSdT73GZq7BVqjvR3lUukGHe4aQelGSieDWXzf+9wMA9LX5fdCe5LqDk/aenfeTNeXHh60Mn62qbSeBz2wrrYyB1r8hXAnyvT9w+rdVYh5g/QEALiR7OSyd8tAiV6eEuMoxBXctpcvbzEvZ11Peq/cvexmzO8Ni+WA5C/3wbSqVRUnIRo0aD4y4xZVW4FwOH5KNKDSMtih4JYmva1OmzWKl/8lwpVsg2rAIhLqZ9KcH75qTGEEZUF5aa3hJl5Os93/WraMljnkA8sNDlTHPhjVAs9+2+qv14ToZ6012wn7sMLL4vELxgFG2Qe+tqgqGzqKDHWYmExU9htlIY4zSy2ZnLkMGROe3BOEvnawiLnulilmZ9AFXed/YKaccQJr2Rx/n3i4oHpWSKRh5/5G202iQZu+iYxiZ47mmd2qJmUase81ciVnpEVXrfeyCR0XIbiPVDaCALBvXs3obrcK6HdvgOmmz3NmFo0TWITWOUSzM0g2i+LIbiaslGzho2wnejjNVtl5EYGNv0LOR54X6NI6vIKb1fL0oSaDMg4lNtuAKNeni4mU5oVkubcSmRgRLUnINVQfT X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1046; 20:jN92cQJdHGEYWbOXY0Ip1e8/IcfY64FgiCRzyBtpuYwnf+nCDTgijXJRz85xufFVnjpp7brCG5ri5VhrpIt0VcFc1+h5FXfN6UvKO3QZMilYzcCMGgXU2boQrty35SHgM0VGKe0sryrNLy0b56+slDtt9HTsBQyEuBaoAAsbLfgttWPioquVzEjTmVpc64+v1th5V5fL52QdtzfwIQDMt4AECjTlzypUBVKmM4vqoK/wdqYYr8wokQxzpvY2gnOVSxuvct++4REmaYsrHnutd/s5X0y1yQuIzmqCpsW+41EaGNg0Oja9mSqHr+Aa4Bdr9MNAjcR44k04eNXMHjTodReSGEy1K9z7xH3UhxAtGyodzvF6GdqQVOwOMX1EQXRIOMXyvnQLH8avwryIXH4FYuzQWuam0/MlGkery/Ni99hrCTIK+11w2+OFrFORQFsH98ANd+oykNJddoaWB/ZrV23vBw7ZEX+yhdBTsEjEiJtpopzwvLetZwNpbBGYnsWAG01GuffkuSE2AUfpBs8O3ZupNFhFeWaC5ec+ulRKG662b8Vna/TTGv0r1Rl/aPi5GjprW2lj61Us1pf2Ka4XYhkGiti029t0zVu0BMWl+no= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13021025)(8121501046)(13013025)(5005006)(93006095)(93003095)(3002001)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(20161123562025)(20161123564025)(20161123558100)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061750153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB1046; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB1046; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR07MB1046; 4:yEd33wbhantxeU/SrpwxKCb1GusnZ4H2wWNZQk+fS9?= x3kQCC5oV7xf4keTjZD+Hj4/ZPZY9llWK+0RzfRugHwDCBTE7MRKwL4QFKhlvKsBvIUMAkhSj9br+wX8NmByAKlo4pFWBXenI+Y5OtqW/+ooFKzZ9SeqW99Tk2HatLvjQi+EmRGYQcELReQnZ9L/TDwXnUMgyjoecsrC8lQa/MhRfZfI41bo36slEauW2+5lnZ9A46BwZ1+b+xkRQti9ZnDLWEr1g+akZPy9auTDIKQWJBZzgIRB2tynbWrxumLbfvvoRQaOkfagmaIacklNzDzwtobYvhdfIXzSpqo4OPVyyoGhG8BjqqMCW56XGwGChaMZFLiZW/X9hx3+tukfnuC3ATwjSvGakB/N9u+tGrdSRF/BlXsJRtQyWBqOTmXSZzIUoCe8Z0H5OZYlqchvNaDRj/p76YBmBx/iPOYKsPFmP4KGnRWfF32+XTtOObTFBpbDqEvSoJme8/yL4oomxZ3PP57tD9be4Nawkiz3lW+SejYz2kw+oKvr6hy5Hw9VgnBjQl5WZLmGJ7+exP3kY1UClKp2O6sLHT5EPW9aiJGEtTtgI74VnHdfquOhYBmtH0HRsAg2PgQgBEbG/iZUvg7v+1UPZdd/NewufFnkAxSJvzJwLe/Os3VPXAvsrbgSpRiH63o/VscqnfRFIeWey8hPX1yCKvbEDMzWpbmy8mTqQWJcz8dlsSaG31qhagmns/tEbSv5KY1zLCZmh1G1djsKgwwN9jCPLgeDhLP9tJjZb3YUGO6N1c7v7kGvSyRR3tfEPKyYeUMss1F8OPAkbe4b9BBWlA2WIhwp2TA/9H9GAaryn5uKLQ6RTzHgQlAu7p8zT6FD4+Ju7tTwREdihpDg3WZE23ymeI20olL6ajc4tFccZRTvSXUfgNLZeVHQYCdbSlk5rx8WK4G8QVv/sPWLfT0n8bZzw1AZwIWCMuW6m5s2lJ85Emow9+fR49hnHX+NBGlB5N+8B7NI94zCcBtEdB1RS4duVGi0rjmcFuhplUNrwuPmal8Xj4tEntlVsOQobrKFZPfBt9y8b9yNRP2lmXgKaBCFu51tBMdiSepz5o1UWrlVmKJfzdsfr9Dt3ijdfYQ1ED2Gyn/H8nk5oz9lM4ozMJH/dXUpFeyhuEqi0z6Bum/++zDKJ3rOjJD5nIoQOoQJBNmEPlRRgpkUcRvGGGim15ivW7GmO3NEDVGM2afB5WnFKehpWYij0Lyo4= X-Forefront-PRVS: 0354B4BED2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR07MB1046; 23:96XoamMsY0+DhnDS1m0CtRPXRFRTBXDo9tR87FVLQ?= qkZ3jW7iYzo8xjoYa+MiFr2AZIzgRXY2E5hGKcUMwlfueHcKRNoopapLNszBHlCzL/LZHOH5FT3oSc5F1ZmAZmyBIfENhp9CxliJU1HdE78qBuQqbMQwKTatm8996ljvXaxXtxnVQYp+yNjHJ0PV+OItxc3cPQmlu0WZzmrY6fPfNGMjh63htu1o4PB2IDLZCF0tPMXdds3xa7avv8HvDLUcBkhaga0GuRmQjJkQgb0kWh92lDxw9aldfo5GFKEKLOzS0cHtMFpXtCR8fKOfJ5ZQk7K1l1fxMvw7NRqqGC+/qQndJAKZo/DTkDzd8C9n24pEhf/zG69Xjbhw6fTWuCYauOqnwg+IApJeXczNMUyqIz9Sh4ow7F6XNT+LkiOxXRr5Q7m8nz12FceBednFlHwZAoCr5GAEemhnc52T4FVKMzoVXxOIDu10IBg9N+Ul6qk5xeErZ24aTLE/Hup4y4WqNKhx83vpYBurc5p/c0LLnWNKvNa2wuLb4nNQWzBaa+VHB7zpssBlkIzUrCVB058rhQD5e39cXinS0ESN6ekaD+zQay3cYMBfSCU7MuOFBoq/YNU8I9trVhJnYEN53bZL7tSamrpAuhaDj1ya/yCV/t+wAERnehT5vyIO7/gN+vatR9BIjXPBp2fbpYfLMG0hs0ra5Rr78fraMWqW+fXX6HP9c/2RMm1PO9rVTeWD7Qh4qubW0g1FaKtTmMlUbK6HffqaCvYVwZ87vsBNOBrb4M1A3zty4nhn9yErdm3Dgw95lexTaTh/pzbofFQ+aXNLguEJBDL59tQ0r91UGDXk/vhQkee7YXx8qtwUP/yiLPHeBuxHpYgoYSDP+Rv1RJIePziAsw0rQN0iuRpS6YYod7kPVjTrnsniitFlWhAv3pMTyTRiFDksKkzZUfd/e1JTjLjWHhmSLCoKngd4OoNHluCiAsicRFGFvG86GgOn3qT4D4PZ6ffhCOnDTs8qWCdGN2Erq1x0HeNvnP+a3thb/Slqt4J+o47s/emFmjEqq7nTMmwyxzPLoSNkiNldydxtVip/P4qnTsLTgMe9RE67w== X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR07MB1046; 6:Gfv4DcnDpWoThURFz+4WVBBaHvNPATG4sIn4TNmkDy?= z4d8R/LbXgotmI5hvflLjKzS2TlvWp8S86Ogtovd8VfBpxqIH1SOzKIZWt1EsV/TMyhA9fMoC8S/8crJvF4ONI5biiEEr8B1tPZMTd1segDjvmVGYOO7fZsXF7d8JmDmZKMmRFrR23QcPR07Wmn4OSAb74twiUA7UfB6yX+KM5vcmJljEqRydeHGkzPM4RqNxduHl6bnWA6epaL5xtJv4TKS4pYaPOFnlJaD19y/30MrkW2Kh7D6FB83A/Ilm67KExyTR7hfpf34vX5skRoJiyJzGa3TfkC0bClOX/DChF9l2SCUSMeADg2C0psicVoGMuRDHf0RcSCy0/bEk60NjU6l7LokmoswM0IO1SSQekMh0uEw+kopI4JLFpvJT+mOx3bzxKQK9E6Aj/6I04WAOcd/E1y7ev9ARusLUGA8gkl3uM8Bdpme902czIzSQOLiHJRMn0LnWyJLVle9J6O/X4qKLx/TMDKVn+8Ve8p+UyngZJBK5rDT8WgvZx7GgQIY5Grx5iK0DgIWdlcDFP8pRwfLd6+1Y9099gDjG6MqG8+feGHXGv6AbSa8bHz0Ham1E/b0ykJut4qsMKmI8T/+neUYTEeXuhsxR0ngKG85owQnhPvayJOaapU5pdah5+SuLHYcnVZ7ik7tL4xDwtP7KZNpby9K9LzVvQsJY/Ag0QwxCPye6Q2u0JH4n4fPI3/aXf7c311eSLot6POjIAkG6w3H1yNmyylTr2jyr5aCZlU4yjJ/C0m4ytSWCHdny3+d0wZ3xlXGgHpRlUm4kQ4aVjGsTvtvE6Unfc5FjMa6QwqzHeb9Swf9RQ4am17AA/0mBFkuJkWYhk0BiKmb3PKVs7fmWNcJTw8GQQylwXS5heiDURCU5Cg+Z3xDxgofTs8lhsKTMBlzBSYGoo0L1YPCbjZBFfaGl/mOxC45uJFxQjfRE1Mx2mNjaccG9eejcH3CNCnGagyQfOqlzRW6S4+JyR X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1046; 5:5VyRbbgP8kyh/G8DDgVdGWTpgSzwNM2491eUvhsrZSSKQM3KuzPBhEM+X4F/LzeOzONsEhtA6R+pml94rI8K6QUNg3EAvuApnRxYRbwRyA8jMkwMqAUoGQkU21fMh9uwhuzN1tImA+9TmjZfbFaM545yDG5MAi3hMmu4/PP1DBcksqYGkA/JPTZPPNC54IJtW17ibOEMJyHT7dSJIk/EJR3MQCouBDFH+jhGyX8StsZN70CrAjJtviJjc3vUWH176unCoizTnVlZBE/76EWCaAMduGbZeaG1dM1Se89i6uU6WcOFsVE8UasCU6N3IBI/Nu6YpwGp5s6gRYT4UeaxYqMBWb9GkP52brsm8CT03poIV5U9LO0AkSrjKCcWNThR07Br51oK2ZZ+i+fTnHkxzb5QWQNKQdnuH28CRV/Ai0BbQXotJcNRv92tyayGV5Cdl8ev3fiepLn419gW2cRbWJmU6aCQqYYs4DzzTwSXLi85LArwQIxduuUhhehILcMK; 24:EndhCN0Nkh3tUR3Ya0LLCXWiGSqgAORnEFpJIK5cOxHOjSV/V1PaRIBft2znBt/WlzWio1dGDF5jg6kZuA9VCKMxdu6KQathOITHmfzEp2g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1046; 7:G2aZZEpsa7EHctReyG+sHgg6z/pvXqTQlNuRvTAWjBzV10cZvEEmtJKnJ0NbEVXQSQ1uliHXTwcXwqSb0qrZfRmanAEGCB/tCEOyNQjHcxthGLXvrjJsiBgJQIT/bVBeNB+NmOATVtNVRRGHux8fZv6ieT3oHDOj10cE9LbQUxrb7w8z40mtaoOMrO/wuxbvsZcv2Sgt55srrpw4xOqeu4o326VjIWkJ34TBiK3wMNlvX2u7gg+kZTOahZu0GnQJbmAyN2iwfC3FoyZ0JitMNs2DoiwXdVpiPBetvjxtf/BV9PYZUlH0YWvGNJkSbpTIX7pxGo65WmLVSBoUG8av2cR8+XCNBqLT5r8AWMcpRW192G2EYmiW5Vx24OPHn1EcvpLcXmdrEMSeE3ipRCNHZUU3B2NAo0rTDymbd3PC5ziQ73RRR+4/nCRBZUL9Wxlq7gl9fU00LLSflFkt4IWCnzVutbOLi5DFCwPFbkB+sDAeT+WwVViweogAGWdVAnmlOOBfUO0Jha7V8zK/ZC2SFx/jJgjhKC9yTksApu2c8aqAUqDUHT1w7KyoIvwu0HfjW8HOZLXSyaCOY45pgZTwm+3aF6+7eNlHILSUb7GAPSJHnfSaqlfURqST0kKif1m4TPZ2nYihqPlPprczoSEnXYQu/Zaq1FRQ6AbANX4wfKkLzFseeKLgqOsB3Q6aMtwhtLyI2/GMFzoZcPBEB10x9pfffCLACdexIwuhGe2H9MK+/p6EaMcT4gURGQFiw7fzb4cjApLtrWpragxpUDzbuk5YdFnohjky4m3mgtxUfDw= X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2017 14:11:41.3464 (UTC) X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5d471751-9675-428d-917b-70f44f9630b0; Ip=[131.228.2.241]; Helo=[mailrelay.int.nokia.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1046 Subject: [lng-odp] [API-NEXT PATCH 1/4] linux-gen: sched: remove schedule interface depedency to qentry X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" Do not use queue internal type in schedule interface. Signed-off-by: Petri Savolainen --- platform/linux-generic/include/odp_schedule_if.h | 8 +++-- platform/linux-generic/odp_queue.c | 9 ++++-- platform/linux-generic/odp_schedule.c | 18 ++++------- platform/linux-generic/odp_schedule_iquery.c | 41 +++++++++++++----------- platform/linux-generic/odp_schedule_sp.c | 18 +++-------- 5 files changed, 45 insertions(+), 49 deletions(-) -- 2.13.0 diff --git a/platform/linux-generic/include/odp_schedule_if.h b/platform/linux-generic/include/odp_schedule_if.h index 5877a1cd..5abbb732 100644 --- a/platform/linux-generic/include/odp_schedule_if.h +++ b/platform/linux-generic/include/odp_schedule_if.h @@ -35,9 +35,10 @@ typedef int (*schedule_term_local_fn_t)(void); typedef void (*schedule_order_lock_fn_t)(void); typedef void (*schedule_order_unlock_fn_t)(void); typedef unsigned (*schedule_max_ordered_locks_fn_t)(void); -typedef void (*schedule_save_context_fn_t)(queue_entry_t *queue); +typedef void (*schedule_save_context_fn_t)(uint32_t queue_index, void *ptr); typedef struct schedule_fn_t { + int status_sync; schedule_pktio_start_fn_t pktio_start; schedule_thr_add_fn_t thr_add; schedule_thr_rem_fn_t thr_rem; @@ -45,7 +46,6 @@ typedef struct schedule_fn_t { schedule_init_queue_fn_t init_queue; schedule_destroy_queue_fn_t destroy_queue; schedule_sched_queue_fn_t sched_queue; - schedule_unsched_queue_fn_t unsched_queue; schedule_ord_enq_multi_fn_t ord_enq_multi; schedule_init_global_fn_t init_global; schedule_term_global_fn_t term_global; @@ -54,7 +54,11 @@ typedef struct schedule_fn_t { schedule_order_lock_fn_t order_lock; schedule_order_unlock_fn_t order_unlock; schedule_max_ordered_locks_fn_t max_ordered_locks; + + /* Called only when status_sync is set */ + schedule_unsched_queue_fn_t unsched_queue; schedule_save_context_fn_t save_context; + } schedule_fn_t; /* Interface towards the scheduler */ diff --git a/platform/linux-generic/odp_queue.c b/platform/linux-generic/odp_queue.c index 19945584..2db95fc6 100644 --- a/platform/linux-generic/odp_queue.c +++ b/platform/linux-generic/odp_queue.c @@ -474,6 +474,7 @@ static inline int deq_multi(queue_t q_int, odp_buffer_hdr_t *buf_hdr[], int i, j; queue_entry_t *queue; int updated = 0; + int status_sync = sched_fn->status_sync; queue = qentry_from_int(q_int); LOCK(&queue->s.lock); @@ -490,7 +491,9 @@ static inline int deq_multi(queue_t q_int, odp_buffer_hdr_t *buf_hdr[], /* Already empty queue */ if (queue->s.status == QUEUE_STATUS_SCHED) { queue->s.status = QUEUE_STATUS_NOTSCHED; - sched_fn->unsched_queue(queue->s.index); + + if (status_sync) + sched_fn->unsched_queue(queue->s.index); } UNLOCK(&queue->s.lock); @@ -533,8 +536,8 @@ static inline int deq_multi(queue_t q_int, odp_buffer_hdr_t *buf_hdr[], if (hdr == NULL) queue->s.tail = NULL; - if (queue->s.type == ODP_QUEUE_TYPE_SCHED) - sched_fn->save_context(queue); + if (status_sync && queue->s.type == ODP_QUEUE_TYPE_SCHED) + sched_fn->save_context(queue->s.index, queue); UNLOCK(&queue->s.lock); diff --git a/platform/linux-generic/odp_schedule.c b/platform/linux-generic/odp_schedule.c index 814746c7..69de7ac0 100644 --- a/platform/linux-generic/odp_schedule.c +++ b/platform/linux-generic/odp_schedule.c @@ -22,9 +22,11 @@ #include #include #include -#include #include +/* Should remove this dependency */ +#include + /* Number of priority levels */ #define NUM_PRIO 8 @@ -1340,22 +1342,14 @@ static int schedule_sched_queue(uint32_t queue_index) return 0; } -static int schedule_unsched_queue(uint32_t queue_index ODP_UNUSED) -{ - return 0; -} - static int schedule_num_grps(void) { return NUM_SCHED_GRPS; } -static void schedule_save_context(queue_entry_t *queue ODP_UNUSED) -{ -} - /* Fill in scheduler interface */ const schedule_fn_t schedule_default_fn = { + .status_sync = 0, .pktio_start = schedule_pktio_start, .thr_add = schedule_thr_add, .thr_rem = schedule_thr_rem, @@ -1363,7 +1357,6 @@ const schedule_fn_t schedule_default_fn = { .init_queue = schedule_init_queue, .destroy_queue = schedule_destroy_queue, .sched_queue = schedule_sched_queue, - .unsched_queue = schedule_unsched_queue, .ord_enq_multi = schedule_ord_enq_multi, .init_global = schedule_init_global, .term_global = schedule_term_global, @@ -1372,7 +1365,8 @@ const schedule_fn_t schedule_default_fn = { .order_lock = order_lock, .order_unlock = order_unlock, .max_ordered_locks = schedule_max_ordered_locks, - .save_context = schedule_save_context + .unsched_queue = NULL, + .save_context = NULL }; /* Fill in scheduler API calls */ diff --git a/platform/linux-generic/odp_schedule_iquery.c b/platform/linux-generic/odp_schedule_iquery.c index b33ba7cd..75f56e63 100644 --- a/platform/linux-generic/odp_schedule_iquery.c +++ b/platform/linux-generic/odp_schedule_iquery.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -25,6 +24,9 @@ #include #include +/* Should remove this dependency */ +#include + /* Number of priority levels */ #define NUM_SCHED_PRIO 8 @@ -1267,11 +1269,23 @@ static unsigned schedule_max_ordered_locks(void) return MAX_ORDERED_LOCKS_PER_QUEUE; } -static void schedule_save_context(queue_entry_t *queue) +static inline bool is_atomic_queue(unsigned int queue_index) +{ + return (sched->queues[queue_index].sync == ODP_SCHED_SYNC_ATOMIC); +} + +static inline bool is_ordered_queue(unsigned int queue_index) +{ + return (sched->queues[queue_index].sync == ODP_SCHED_SYNC_ORDERED); +} + +static void schedule_save_context(uint32_t queue_index, void *ptr) { - if (queue->s.param.sched.sync == ODP_SCHED_SYNC_ATOMIC) { - thread_local.atomic = &sched->availables[queue->s.index]; - } else if (queue->s.param.sched.sync == ODP_SCHED_SYNC_ORDERED) { + queue_entry_t *queue = ptr; + + if (is_atomic_queue(queue_index)) { + thread_local.atomic = &sched->availables[queue_index]; + } else if (is_ordered_queue(queue_index)) { uint64_t ctx; odp_atomic_u64_t *next_ctx; @@ -1285,6 +1299,7 @@ static void schedule_save_context(queue_entry_t *queue) /* Fill in scheduler interface */ const schedule_fn_t schedule_iquery_fn = { + .status_sync = 1, .pktio_start = schedule_pktio_start, .thr_add = group_add_thread, .thr_rem = group_remove_thread, @@ -1292,7 +1307,6 @@ const schedule_fn_t schedule_iquery_fn = { .init_queue = init_sched_queue, .destroy_queue = destroy_sched_queue, .sched_queue = schedule_sched_queue, - .unsched_queue = schedule_unsched_queue, .ord_enq_multi = schedule_ord_enq_multi, .init_global = schedule_init_global, .term_global = schedule_term_global, @@ -1301,7 +1315,8 @@ const schedule_fn_t schedule_iquery_fn = { .order_lock = order_lock, .order_unlock = order_unlock, .max_ordered_locks = schedule_max_ordered_locks, - .save_context = schedule_save_context, + .unsched_queue = schedule_unsched_queue, + .save_context = schedule_save_context }; /* Fill in scheduler API calls */ @@ -1428,18 +1443,6 @@ static void thread_clear_interests(sched_thread_local_t *thread, } } -static inline bool is_atomic_queue(unsigned int queue_index) -{ - return (sched->queues[queue_index].sync - == ODP_SCHED_SYNC_ATOMIC); -} - -static inline bool is_ordered_queue(unsigned int queue_index) -{ - return (sched->queues[queue_index].sync - == ODP_SCHED_SYNC_ORDERED); -} - static inline bool compete_atomic_queue(unsigned int queue_index) { bool expected = sched->availables[queue_index]; diff --git a/platform/linux-generic/odp_schedule_sp.c b/platform/linux-generic/odp_schedule_sp.c index 14b7aa88..9829acc5 100644 --- a/platform/linux-generic/odp_schedule_sp.c +++ b/platform/linux-generic/odp_schedule_sp.c @@ -410,11 +410,6 @@ static int sched_queue(uint32_t qi) return 0; } -static int unsched_queue(uint32_t qi ODP_UNUSED) -{ - return 0; -} - static int ord_enq_multi(queue_t q_int, void *buf_hdr[], int num, int *ret) { @@ -830,12 +825,9 @@ static void order_unlock(void) { } -static void save_context(queue_entry_t *queue ODP_UNUSED) -{ -} - /* Fill in scheduler interface */ const schedule_fn_t schedule_sp_fn = { + .status_sync = 0, .pktio_start = pktio_start, .thr_add = thr_add, .thr_rem = thr_rem, @@ -843,16 +835,16 @@ const schedule_fn_t schedule_sp_fn = { .init_queue = init_queue, .destroy_queue = destroy_queue, .sched_queue = sched_queue, - .unsched_queue = unsched_queue, .ord_enq_multi = ord_enq_multi, .init_global = init_global, .term_global = term_global, .init_local = init_local, .term_local = term_local, - .order_lock = order_lock, - .order_unlock = order_unlock, + .order_lock = order_lock, + .order_unlock = order_unlock, .max_ordered_locks = max_ordered_locks, - .save_context = save_context + .unsched_queue = NULL, + .save_context = NULL }; /* Fill in scheduler API calls */