Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752003AbbHGKY6 (ORCPT ); Fri, 7 Aug 2015 06:24:58 -0400 Received: from mail-bn1bon0115.outbound.protection.outlook.com ([157.56.111.115]:38340 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751661AbbHGKYz convert rfc822-to-8bit (ORCPT ); Fri, 7 Aug 2015 06:24:55 -0400 Authentication-Results: spf=pass (sender IP is 206.191.229.116) smtp.mailfrom=microsoft.com; davemloft.net; dkim=none (message not signed) header.d=none; From: Dexuan Cui To: KY Srinivasan , David Miller CC: "olaf@aepfle.de" , "gregkh@linuxfoundation.org" , "jasowang@redhat.com" , "driverdev-devel@linuxdriverproject.org" , "linux-kernel@vger.kernel.org" , "stephen@networkplumber.org" , "stefanha@redhat.com" , "netdev@vger.kernel.org" , "apw@canonical.com" , "pebolle@tiscali.nl" , "dan.carpenter@oracle.com" Subject: RE: [PATCH V4 7/7] Drivers: hv: vmbus: disable local interrupt when hvsock's callback is running Thread-Topic: [PATCH V4 7/7] Drivers: hv: vmbus: disable local interrupt when hvsock's callback is running Thread-Index: AQHQyk3ddXTrGmv8GkSSadcGzzqxlJ3zj6mQgArf2jCAANyeAIABFY0g Date: Fri, 7 Aug 2015 10:24:44 +0000 Message-ID: <0929270e654b4142a5aa399fa7ba50b3@SIXPR30MB031.064d.mgd.msft.net> References: <1438086930-19483-1-git-send-email-decui@microsoft.com> <20150729.152809.1531386671239230150.davem@davemloft.net> <77fb17eab5474ee7bf34bb1c148b84ea@SIXPR30MB031.064d.mgd.msft.net> <1e6203fcf0c645c98944f25425db9406@SIXPR30MB031.064d.mgd.msft.net> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [141.251.57.69] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11OLC002;1:ue+WCWRlZx2bQFpI/6vqFovki/XDGJ9SRsmk0IhG8nglBy9CLlPC00TeqBG7dqKHweVu8MooAMj7ycSbp5kZbDgCK5L01pGdHNBY0+LEbbhpUdsxWXQgBkdPDmbAbo5Zjr4XRYsT1v2WWBXMLoWKFdzSR1ddZKPNKL6MsM5FeaDzp03CapgfFCn47fLzxjnGe1AdmpB8mTt0fnGdnwNjyshXT61vDjTilSN1AHEL8kTezOwmQ/lmo2qODpOgKe8QVrIOfPwAZpZeLACM3uuHHVSu1f6HBOgaOcEf/UEkWSjsex3Cms3sxtYmvgk5Niss X-Forefront-Antispam-Report: CIP:206.191.229.116;CTRY:US;IPV:CAL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(438002)(189002)(164054003)(199003)(377454003)(51914003)(16796002)(5003600100002)(2421001)(584604001)(46406003)(2900100001)(92566002)(2950100001)(33646002)(189998001)(66066001)(10400500002)(50466002)(23726002)(64706001)(5001960100002)(62966003)(77156002)(5001860100001)(47776003)(5001830100001)(1511001)(97736004)(4001540100001)(5001770100001)(10290500002)(5005710100001)(81156007)(102836002)(93886004)(86612001)(19580395003)(86146001)(106466001)(97756001)(108616004)(10090500001)(46102003)(69596002)(2656002)(24736003)(87936001)(19580405001)(86362001)(26826002)(54356999)(76176999)(50986999)(106116001)(6806004)(68736005)(2561002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR03MB368;H:064-smtp-out.microsoft.com;FPR:;SPF:Pass;PTR:ErrorRetry;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB368;2:E0NGTrBrLG92lOvoo5TyM6hs4RDx/2XVTYKIfIYaU3E2mQhtnOpnitlHfuGGpfLf0RPtQ8PYW9MIe0RwbziKRdQLDwZLtb42+b7IEP9rUEgiuEa4Ed7ll+aaydVmvHno/4A3OaqukEWWc2Yjv81xVTK6wAp5iyyNvZ1kt0UxLFY=;3:5oFg6AWst1dxkMZTIYSwarnpU7DgNcxMR6SYbZL8J1Uh5MdvdEpimmOoAO82pslH4Sj/1SoGBWuJ4oDg7X6VrmTEjQTq5NtDRjYzG1QBxVne+eACpPM+LZRNvuwVfuY/bV0klwUv89DHaKRuDMO5yMNUc6f62ui98g8wPPTiDUij8tp98/i/nq7OzlB5uRHQLua9HzJYuSwTQRYKvI96XHwen3zppphgsVkObT1mtXpYJlueJa0f8+jiinjzaMZR;25:lm0zt78lSe0S77xdkwoh1k8ffMqwYsGTviNsioMel6zAf9xSKe3OoPmOEw7/rS1TvYaMRcDCWCoTNqAx8hXsi/G2b9NxZrUWRVvqigPLIxTbKlyDCeKZ4vNKAACOOJ6bmYw7wl5R9n0BGiAPVEtWqjFYucjEvU3y7kNR8IH7IM1hBmxbULBPKXQ7gOL/mAvIvzIHt5kj5FxaX31gNO1fkmrEJWQ2kK6do96uUJiZG2YqHFrISsh+ac447mufQfQypptwtvOvfKi0Hk2yZq9+jg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB368; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB368;20:IIsTmc1iQPmz4kXrJrjre1cuCsxw4k997sr1L8/ZOe9VXnmypBYOtMoAQuaixQ+SaHWBhw6iOqkX9bXRrd5/xHylM1OV0Wl872g/GfqURUSE9ZtboH4y17zmSEwo71Xy65Jep6MkgmZagF4cPUlfzQVkFSkSj+ITjKUgTEVhjwBjMCy1OYKFLkbLBrnsfVEZ2WX2SEDJQH8stPTDO47s3lVaa2oZgEomv3e9uNXS6YSK9tj1P5N6ho+A90NKmnWPy8ym0mCYAXqawTQPXG31fc5wysOx79CLD1h7dcw6qRlvBZDn32Ri/0OSDeEDNAjPnAj0QjKsgxGFASTfhvt3VeWZJ4NWv8AikzFNSWsVVwGICMQJ97mfDGRJcee5FGI68wydayUpSEC7LXnQAp+nGUnj5AssvobxTxNXi1CpotcvV13iWxnNNtP/N9fcl3P7DWoXUrvicBJsVG3tyXLssBbkEi3VBw0sEHwWVnafRDB7VbfLQvqpRchFKAnIOWeM;4:XMTSMtK7aCGjfwgGyuywjnj2PsrYZzKd2a19UhQVqWLUhp7OOYK6asjTSkZThqgFkDhJWplTF7hKUMIMmFhU9WfWVGOTjMFUqTuxx6qE1G3bhKyxI3HO5rjxuBgP71XyAJZkF5ZUrbRkq/8wfXOX8N/eEFnKNivhCijzoGrYuahW7cZ/lhnegi4L+9akN3LJgmeSpnCGzpFFuBrNIj9HxLJbxTrTLfy1DDXyP+VjtkBB8GniHyQLcsgAVxJRsNWJAp+HJ0wB+BoBoXML1DVGeY1RrzudJRrpJFlIcXLeGQS8yitfPfrVKwWTvhJJ2mKF X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(108003899814671); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401001)(5005006)(3002001);SRVR:DM2PR03MB368;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB368; X-Forefront-PRVS: 066153096A X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR03MB368;23:TwgylhHt//E6oAik4ZJ9ftNp5m8uwjsPzmO4z6VuN9?= =?us-ascii?Q?eic/tbNY0Z4by2CcTuiCFj9IVD9WuB4dKachJqHZoNG1FanbzV1UQEf94SnD?= =?us-ascii?Q?hvpDLvFZBp8UklykbmMt+pNABQsQmnnL6kJ28EKxpm9pjubuAjhOtdhZm9Tk?= =?us-ascii?Q?DU4gL9HRUVe3Su/wLYg4Ht6/oVFKAgOF9msTIhnayaIfvbsBStI+b4/pg7kX?= =?us-ascii?Q?oNo7h2nVGllUwJnokuvssiEmHQk3EmA3En/5paMk5kMZ0MJN++LKK3292qM9?= =?us-ascii?Q?vp6NDHxmx/AUXb/HFUY3e54fV7Hw6krUjrZbj1T1v+EaQndj0r4uT4BEwrmD?= =?us-ascii?Q?erxHgW6hpRiBjZzrOcCYD0EDu3GcsuZIWf3lNHWs1leZfJu2fPIRHsvLApSL?= =?us-ascii?Q?IM5bKUgzObzMibINarUQF9irLbFSZTmJDYiVGyzG3CIqv8bGBklE7hiolCKO?= =?us-ascii?Q?ngEvI588+FlU/jFisExrQUcidIBRR4ILPA/4ufMr72zf5TCvYLWID7O2odoC?= =?us-ascii?Q?PHjeGmFqq1R8oVK3XAQnbPZp5FRR14caLuXtes1PhbHaHPnV9I/YbIZfU+D8?= =?us-ascii?Q?aWqxhOWbVQplT1VyMBPfVobzaCKasF04Fg3EZKAr6Xidc+M90pbzrP0r7JZA?= =?us-ascii?Q?uA+4y0fzvVPbNxlXCMbBsvpOHgAq1HTxmhs4xLFS55NC28KlHh/rPyujuvXf?= =?us-ascii?Q?u6yZAbZKqnSLq/+Nbu69QQ8HNnCj+eESa7Xe4PmT/doBWnFj9aZ7XTBMTozA?= =?us-ascii?Q?OWsDSdcmrNHbGjzzxcfSV2zBGufR9uUVBcWTjTacF3H/C/2UI2hcXaXm0vqW?= =?us-ascii?Q?yH6dnXHAg1TKlquyYpI818W0xvotLZ2EvBlNAqoLT8lHQ/syI2uAbXJQT/gW?= =?us-ascii?Q?yOzNWXNYPHP86KlB+luMRa1Z97wfWjeVS73EK5oEoT7CrxTuXtocWWTTiXrK?= =?us-ascii?Q?sF0K6pczfhYi6GTOnplWrMuE73dxYKpsqPAbE+Y8ko6lqU26zqCEsoSBU+YU?= =?us-ascii?Q?Ok0iimZaJo5TpzXtJqhAi2NMCKDqOBjS6cv8kE9qEZnxHwKhHkpXH/hA50jR?= =?us-ascii?Q?Xoldq8YH3QyBCBoETZ/2QLtJbm+aJsbtx6FAnB1lpTikmcu/fFVol4Gio9NJ?= =?us-ascii?Q?dNOWY7a449VTwDgzKXgTMTetNFkb2jUdOvovL5xWUObkUOEezsPrd1jbYJOc?= =?us-ascii?Q?mBCJp7PrX83PsCUBhuHYnbClgzdkvaSjaSFw+gCRldp3KRIb055rkj1wp8K3?= =?us-ascii?Q?59hkmNzl7WqlX5f7rYEC70RElr2B1Q7RslRQ1UEC7THxDNn8rwLGyo9NT6Ce?= =?us-ascii?Q?JLrQy2N3XD4wMzdqeQJghVqJq6KW9kWyvn/x6iU7EVfifIBn2ZOVEg7FECBf?= =?us-ascii?Q?TD1a82g2XJHekaJj5qfAMbjdwa8TxsP5MvEOhvZfhvZ9dIrhXXcrJvuY44nt?= =?us-ascii?Q?g6ac3jQSHqWoWen66kN6eTyqazbrpKuc4F/sQ+JFbEMcLjYOWerjXQwVsN3O?= =?us-ascii?Q?Gz5Ivu/EeIQqOJac+JlhcSqFHyGv6hPLhyPBp1cjD/HQ5Rvj13njhd/0CkQz?= =?us-ascii?Q?XGAdhMeLh+3kekEw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB368;5:y7/AtnrKUVrBnrc03j9v11edkKtt+1s81NSxbRQnnzDIuhsRqV4c7KyjA3ci53b8L6/BbmGcKO1a2ry0p1zYH+9ohk2rYllp/DBUMsTk8ui9+O/VfVL8XqTWSE+cILBti9mlwaiRfOLHrTy1Z/IZFA==;24:vdO7+6TNZFL2nSmkLr+bdnBjdL4SKps+o+9wIZc2Mnyl4VL7g7FiwMTDH7rlvcsVKHkekbktWNCp5WS1t/cfeV529SIZkHmYlSKqYBA6F04=;20:7tGGTH7sLQwS/WZqfHwMroJERhnbplEeLTQKJgAZtGTlHDvCxIJe6oEEqcdKEoi3WfZbypzUZbOYpf0h98gLtg== X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2015 10:24:50.6232 (UTC) X-MS-Exchange-CrossTenant-Id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=72f988bf-86f1-41af-91ab-2d7cd011db47;Ip=[206.191.229.116];Helo=[064-smtp-out.microsoft.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR03MB368 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4484 Lines: 108 > From: KY Srinivasan > Sent: Friday, August 7, 2015 1:50 > To: Dexuan Cui ; David Miller > Cc: olaf@aepfle.de; gregkh@linuxfoundation.org; jasowang@redhat.com; > driverdev-devel@linuxdriverproject.org; linux-kernel@vger.kernel.org; > stephen@networkplumber.org; stefanha@redhat.com; netdev@vger.kernel.org; > apw@canonical.com; pebolle@tiscali.nl; dan.carpenter@oracle.com > Subject: RE: [PATCH V4 7/7] Drivers: hv: vmbus: disable local interrupt when > hvsock's callback is running > > From: Dexuan Cui > > Sent: Wednesday, August 5, 2015 9:44 PM > > To: David Miller ; KY Srinivasan > > > > Cc: olaf@aepfle.de; gregkh@linuxfoundation.org; jasowang@redhat.com; > > driverdev-devel@linuxdriverproject.org; linux-kernel@vger.kernel.org; > > stephen@networkplumber.org; stefanha@redhat.com; > > netdev@vger.kernel.org; apw@canonical.com; pebolle@tiscali.nl; > > dan.carpenter@oracle.com > > Subject: RE: [PATCH V4 7/7] Drivers: hv: vmbus: disable local interrupt when > > hvsock's callback is running > > > > > From: devel [mailto:driverdev-devel-bounces@linuxdriverproject.org] On > > Behalf > > > Of Dexuan Cui > > > Sent: Thursday, July 30, 2015 18:18 > > > To: David Miller ; KY Srinivasan > > > > > Cc: olaf@aepfle.de; gregkh@linuxfoundation.org; jasowang@redhat.com; > > > driverdev-devel@linuxdriverproject.org; linux-kernel@vger.kernel.org; > > > stephen@networkplumber.org; stefanha@redhat.com; > > netdev@vger.kernel.org; > > > apw@canonical.com; pebolle@tiscali.nl; dan.carpenter@oracle.com > > > Subject: RE: [PATCH V4 7/7] Drivers: hv: vmbus: disable local interrupt > > when > > > hvsock's callback is running > > > > > > > From: David Miller > > > > Sent: Thursday, July 30, 2015 6:28 > > > > > From: Dexuan Cui > > > > > Date: Tue, 28 Jul 2015 05:35:30 -0700 > > > > > > > > > > In the SMP guest case, when the per-channel callback hvsock_events() > > is > > > > > running on virtual CPU A, if the guest tries to close the connection on > > > > > virtual CPU B: we invoke vmbus_close() -> vmbus_close_internal(), > > > > > then we can have trouble: on B, vmbus_close_internal() will send IPI > > > > > reset_channel_cb() to A, trying to set channel->onchannel_callbackto > > NULL; > > > > > on A, if the IPI handler happens between > > > > > "if (channel->onchannel_callback != NULL)" and invoking > > > > > channel->onchannel_callback, we'll invoke a function pointer of NULL. > > > > > > > > > > This is why the patch is necessary. > > > > > > > > > Sorry, I do not accept that you must use conditional locking and/or > > > > IRQ disabling. > > > > > > > > Boil it down to what is necessary for the least common denominator, > > > > and use that unconditionally. > > > > > > Hi David, > > > Thanks for the comment! > > > > > > I agree with you it's not clean to use conditional IRQ disabling. > > > > > > Here I didn't use unconditionally IRQ disabling because the Hyper-V netvsc > > > and storvsc driver's vmbus event callbacks (i.e. netvsc_channel_cb() and > > > storvsc_on_channel_callback()) may take relatively long time (e.g., netvsc > > can > > > operate at a speed of 10Gb) and I think it's bad to disable IRQ for long time > > > when the callbacks are running in a tasklet context, e.g., the Hyper-V timer > > > can be affected: see vmbus_isr() -> hv_process_timer_expiration(). > > > > > > To resolve the race condition between vmbus_close_internal() and > > > process_chn_event() in SMP case, now I propose a new method: > > > > > > we can serialize the 2 paths by adding > > > tasklet_disable(hv_context.event_dpc[channel->target_cpu]) and > > > tasklet_enable(...) in vmbus_close_internal(). > > > > > > In this way, we need the least change and we can drop this patch. > > > > > > Please let me know your opinion. > > > > > > -- Dexuan > > > > Hi David, KY and all, > > > > May I know your opinion about my idea of adding tasklet_disable/enbable() > > in vmbus_close_internal() and dropping this patch? > > Sorry for the delayed response; I think this is a reasonable solution. Send me the > patch. > > Regards, > > K. Y OK. Will do. Thanks, -- Dexuan -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/