From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754601AbdA3WBZ (ORCPT ); Mon, 30 Jan 2017 17:01:25 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:35261 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752206AbdA3WBW (ORCPT ); Mon, 30 Jan 2017 17:01:22 -0500 Subject: Re: Q: lockdep_assert_held_read() after downgrade_write() To: "J. R. Okajima" , References: <18295.1485811542@jrobl> CC: , , From: Jens Axboe Message-ID: <86195df9-2a43-2a0f-38ac-68792edc41c0@fb.com> Date: Mon, 30 Jan 2017 14:30:45 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <18295.1485811542@jrobl> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [216.160.245.98] X-ClientProxiedBy: BLUPR14CA0011.namprd14.prod.outlook.com (10.163.77.149) To MWHPR15MB1200.namprd15.prod.outlook.com (10.175.2.142) X-MS-Office365-Filtering-Correlation-Id: 5f436762-10c4-4217-7958-08d4495743a1 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:MWHPR15MB1200; X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1200;3:pwO8zfb2FrDZTIQv8iHzdwNpJ+Bc6MdLIx2cxndkGvz/Nq0v4psQbAKY0OnJ/FNkI2Zdx0MsmoUBjNIg7yXVKagqdnNq23BdZHejn1XLeMoXDqNcJBwocYgjLbQQhNRZjmVzpNJg8Lz3AKoHtvKhvRoK7YS0j77gGkc9lWMC2nd9T/t4bsR9RfJJo2+gIHnkVmJcab2vNZmsR3unRyvaSJ+84fbI4KsO1eKEPSF9wlqFjEj64aVANIVa9zMPLleS2Al3hu3UdiI7hIpeFUQ2Fw==;25:1SaeD3wAfJaGiBlFGOySwwbE0cHZ4Bkz+9jJoNIfbMbiKgL/k1y/B0NcmUJv1sJIhi0Q5QRGfxzm8nIvowwUxDZet7TsMeWQ7bajuL53rK/OF51NJVWKgHM5/v4f2JQTueMjRh5QDCw7YOEBIkcLPAiaYaqIYiU51HVcOL37ZFKc/o9dlQI1Fw8OjXXYD5ASSdmZEHnWfvPvkXHJj/ycUQsp2LVcKLbF8cDoUK5JBF1EtRNXgvsCCmGyauynK9mITinLdbQeKejYqHxT9rMT4uzUJz640eH1ZfBhiH8dT1h2EG6BUwMO0cr0dpgC6nKytAVzSlI1Lq0X4OYyEea3LFGZSVE0cPGoIVrIzHm0E07StLT71n3+FyAp84jGg89FbJM4Zfo8IB8ENXzZ9nnB7dzkWfa0ieKLfRri2/W7AHG93QKhwsq7abHkaDCUIe52dJPONI9AD0qNtH6ltQlKMQ== X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1200;31:vit67Qwe0uVT0O7vyF/kYJr86T1AV+CDHVYSSRoqtLA9CF+l4LhOYqUjXkEdiaEgWLibj3HnA4PQpWRwUYr1bR5jmbsUxNA0O1KH4086c6GdEF6JdO30b2M2xZgKR9uHAzXs85jwqlnqBV5TonyWGCisqEgu9T62RmHaMCsbqu6OziNs/8uzUeQJYzK7lptRJHijIHZ3u9XE+cZ0MoLUHQ1yv9LfZDo+w7L5yIJWP+tZUMCGKe9SJ7Ob5eHdYQg30SxyTDG4raRl9ZYXMp6L3w==;20:VbNxzwl7TQe+a2r77hnNZL7g1fGKBuyAA/c4gf4n9abAssNMKNCfL/VoJpER60Y2P6pPXd1HY4/nXrvGtlXd1DrQ1l8pVlNmeJvuOcS+9avrDoqneeCxq+RFHfkiAhU96FZe6PKNFTEiOnrIVkhUr9HsQOsy9DRL0FPWq3AvHsPHYKDkczMdCqpWayDB9+9pYvFG0+JdV7+utGhVZjIVr10mN20NOtpoLIuSvvijkVQEp/OKUzqTONwu/xCo/c07vgxA0jjEJ5SXBVNH44moB+zTk6l4chNy2juHkdXO0ThjdA6JzWDdQ011JaBRQ7W9CE52Vjouxscj3jKNR5hY+TTsFuvtJIXe03RKFfIaToDti6qqH7WLi9rwomP4BmWbCYLZ1n7Ghve+9Xl31J2fIZzSKB9+x9n4JROu/PowrGmLQoeQNjAbW8+0djVu6eELI83BnBSps0WqTvcTjcaNRcV7irIyjO4SpV/pGXl47OQNzHzGTsXazgjaEj45ZwR9 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:MWHPR15MB1200;BCL:0;PCL:0;RULEID:;SRVR:MWHPR15MB1200; X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1200;4:Wm5FKsxnKpT0GcopbFhyVykfBKiGAeFQS6K1pmfQZuD5X2gcRb1rUmWcBe7O54Nvwvcx13olHdmirUneW05Z0QyDISHQy6levNtSANkWGwvhKqE9YZlNfums7AG/kZUxKLHM0qebEZDmmzWQRGX2ebVchVNVG81Q2awrZHo2oDDA5fVktYXhuOef9EJb9kjLCuO64q+K9PMuGfRe36VM4KJurvsiRYdSlSPxoyrLvIanCVz3A4dKuvVZ0+EHhI75b4gZI8TwFBJTtlrM/XXBRtrVnKWeJnh0Mrhi2pH4JcahYjZqPAbJk/Lk3PcB4dCRSW1ILkK3ET+siiJxxOUZSR77i5wrcDjDColEXuyRTLmzxaJFzbYc1NFWQLAHFaeE0pXUq4YCtSPQwHdlMFzBcRIXx6k0GI2KzIpyUl84xKJy8vc6bF9B1ErcK0q//LN75vH85h6+xPz4qkEHeUFAzjvz1zUAWEMPhOTrQb/L5JtbMC+1dAjy0h/GHhmpUU2ThYLdBZ/2/RGXWK9QyflxH8SIqhhA5l9oTApO+PWLhLBdbkri5PpEz0FzyFSt20aIBAOmgSCmdXvyFYKM/YuA3g== X-Forefront-PRVS: 0203C93D51 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39410400002)(39450400003)(39830400002)(189002)(377454003)(377424004)(199003)(24454002)(86362001)(38730400001)(81166006)(81156014)(50466002)(4001150100001)(77096006)(92566002)(64126003)(25786008)(54906002)(97736004)(5001770100001)(8676002)(6666003)(6486002)(31696002)(33646002)(229853002)(65956001)(39060400001)(65806001)(66066001)(2950100002)(189998001)(47776003)(36756003)(90366009)(4001350100001)(53936002)(4326007)(23746002)(50986999)(5660300001)(305945005)(7736002)(105586002)(54356999)(106356001)(76176999)(230700001)(101416001)(31686004)(2906002)(83506001)(65826007)(117156001)(68736007)(3846002)(6116002)(42186005);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR15MB1200;H:[192.168.1.154];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;MWHPR15MB1200;23:Ac73m8r0nGVSG9OFfO/71NLfJ/JdfWkZda14C?= =?Windows-1252?Q?Ej3q8LrnTCX/2OLW1VncD3cAuz1Bfs77P2Aj75PoQH3fnehoy+/KCJqq?= =?Windows-1252?Q?dY8fTHayqrV31cyeHDBtAJwua+vDlEuCrRFmwqkEea0yfJM8YqoS4SGK?= =?Windows-1252?Q?3Zo0yuFKULMBHd2mON3ga58HqTVupIQSAtOvFPT8xg9ZZVq2L2O8C+lv?= =?Windows-1252?Q?5Xqzs071cqN4ukYul0xONu4rpkfH5hjx3GUvHRzOdFb7MrwOnW7mK8kP?= =?Windows-1252?Q?I33Vy+LUZf52DwaRIOs5ZZiOKBjeCcEoHQgOeso+8SVipbDY7IPpTxoA?= =?Windows-1252?Q?ROj1dhzDzKBhBEgVmWHd3ag7ZTaReQbkO1E5+UbGoXn6RY9XPEwADxzv?= =?Windows-1252?Q?OWTwdSnydpeyTw2AJDso+MjWf0YH8+2sC8n4E8TiasithZrmsGeVsU+E?= =?Windows-1252?Q?iUPELVr+9BkXrSdJHoTaFOx372yB9TCC1qjkRvoDqZCKoFjezjSVucnN?= =?Windows-1252?Q?XorRS7Ms+WEtfTyktoASXJ+x7wvSiqxW0xngVzjyEM2lRl53H7hDqHsT?= =?Windows-1252?Q?ZkjzGcMncaJA6rKLLjCIew/wB7elVM3/OkLxy0+Hqun95V+u78tY4Udx?= =?Windows-1252?Q?vjtRhl2toV2L56nKHSRHVXxFYUloLTjRmFEpsmA2wvTvUxfFvmzjBxKz?= =?Windows-1252?Q?wSVNgvKEAQVxsVUG/anEuWbL9w6w2zpJEOcvc7G/72/syAjTJY+38QSd?= =?Windows-1252?Q?do1OZyxonF4p4+e+rjVpRcFOP4NpM3G3gcZubHTKVmyZQxnmPe8OT3La?= =?Windows-1252?Q?OF6PiroVNyi/Fn/UBZvF67JKd41YgVAqn9kky+GR8MkdGPxxUroNPArH?= =?Windows-1252?Q?iGiNU5G45H2m4sm8Az+zPUByylRUNzPwQMgIcDfqLvfTPZVjdCSwq+aF?= =?Windows-1252?Q?RVOwuKRW7f7NZ9xTmWEhHkEIlqAzTui9USkEAFHIp/4iJ5dWZX0zgdih?= =?Windows-1252?Q?2FAJjD8RHxg6JavEGzsmE5MemNCZPeFVtM+9aXlb9mfXmBBPG8ffNSIT?= =?Windows-1252?Q?7z4M8M1ztfCtQupM3ITl5fTgNEexLoWEdEf2DAvZIJnpI8GjfwR+wIMM?= =?Windows-1252?Q?ivS5xgxTD74CV6ejffCwkOMrL/Vi6rDAmLXqxGt5hJwJpxsxcwve9YT8?= =?Windows-1252?Q?sIarjvL4y7WpSkBuudag8vPjz0lDHrxRextQF4DybIlfjAZY/NhPynO3?= =?Windows-1252?Q?GjjuyDUNoJJfM1fjMO27eL1TDUgp55NT/1OmRaWCB5oD1as2weIzptcV?= =?Windows-1252?Q?3pjc26KQDMHsGov/olb0N/sMF/XNMQawMMDPQ+AcSRhgs7WOxyLevsxV?= =?Windows-1252?Q?8CaLUevnnep6aAeSZ7kCzStkj684JcurQZjZ4n7S5X193iPbmZqO6dXu?= =?Windows-1252?Q?Y7HQiiy98JjIWJsOO0ZOyGNJMW5BaNnLmwOpi6pcnfD5SL3MepO0JTuy?= =?Windows-1252?Q?rXrPIV2Oqw5WHn5F7xf1rdz+Tq/bvc+fUmaXx5xG5SY7AI+hjJCQLOiz?= =?Windows-1252?Q?2W2kh85VGXBpC1vYQ+nX4tsgXLtVL8QWZ2iakxnGNqoNJJe0cDmQ75Td?= =?Windows-1252?Q?1ci2oeJpX8KYAtCY2ZIoo9A0VH5a4TJKqBMBexnmWXt?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1200;6:5vJsH7ozpneMqMBnIGjtHeKFhX9E8QD5eLhg1L6FGhaktdW+9Zs+eblx8EI+z95CErwtdLB1skSqous7kS/ev1qaAb9GJP/9kIWVO9XbvqRNaSIk1Mr8EDdSfa/BowuluUOKkabaJhwjfiYoP5NsnVwlq4WMs35bqBHBRuNMG9tLR03aj+gBVHNrI7poR1gTzxFD7i5wqulKDzZdSp1JEpJlBE5G+PYGLPJfrFFJqc9cfhiEcz9Li1aWC+gkgQTSGCqIqHw2oY6ffEstTvY/4BHKz9IoMhOtTToBSF3oXFuTGXwbSGSWoOckdo9vUPHArE6/8FSs/tfszQNgNpSRudDv+CyeXgEKV4J9nT/6tdJMyEm+BMG+qIa3SGMgpl0DLFQQ5oEzis99KX+mGBCuv2KNrsUPVf4teT4CIuRdH7k=;5:wmSdOaHkBQxQ7ExBvor8VsPdb6NR6nc0pRnEiFoR4NBJ7FFBN1Gy99x3/POtcCwx2YzxgcRN1QCbyAfIE/XPc40djVb85TyPtWGgSJvk21+CgcSju7trgT6UZLDWRGQDXh/a1FesJ+Ig/Uvy9oCuvq/onuE3fykmUiD2DDYm7pQ=;24:Ol9YjxSlcYAkehAmSATMgCwelvgGr+hd3ZdwtdywvUZJSSJIjyTenGturlSnN9ZTHi7HI4z10kByHBoxn92ZqN+xseru+CRFJVC6proIJWc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1200;7:hJCv1HC6g8csUXIt0xQss2Qo1wPHA9gqFkHlNSoTxq4kM+MS6hsKJQZS+bLanNfUQYfTN6e8AuCTUiEEFaGXfUF/wjlN/5HeyZNyXRpLQL7xEj8/uOdDjgZ4zsc5j00z95T+yF/Qi3pwCK8Q0kAbueUoZ1XFcFMJI7ukOrFEokc8r69FSvf3pXosaBKN0pdviHs3vWLFShWlDESswkrO1Cns3zeYsgWH2/hybgf+9kVE1YojrkFYoRKotn42iGnB9lgguS6sTV6eF7XAGazeY4Jtn4tGCctbXhRHzsM5+2VfQ1/jQgpHUqPADBX6qodpuK+BQtgHuAhGoTLfAGzOmLrPV+ZDih8z7IDUf+uF6a3kQ/aptM/bFzI6R4JUgAY/jWLS5ye3WWO5rFdiF8CojoqPZumQIqCZ5/0bKemmJZc26xKQL14GFGTKqMEEdnXlV3XLDpMA6kF73k8O/Ux4wQ==;20:mevkKcbZCLDwGAT6slGz8svOKwIjHsh5+lwY2XJ/Zqpxs9BiTsY1ESsKzH1+WLxE/bz+7+Ob0KdVX8Ou/tjB78scyREZV65WeFp4f5eH0Kfe/LWXeSx9ooKJ+J1MSHUoHyUUWHQBcELIkv3gwKmPGvjsvwo2r3tfJ4BGfrcDXng= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2017 21:30:50.0291 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1200 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-01-30_11:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/30/2017 02:25 PM, J. R. Okajima wrote: > Peter Zijlstra, > > May I ask you a question? > v4.10-rc1 got a commit > f831948 2016-11-30 locking/lockdep: Provide a type check for lock_is_held > I've tested a little and lockdep splat a stack trace. > > { > DECLARE_RWSEM(rw); > static struct lock_class_key key; > lockdep_set_class(&rw, &key); > > down_read(&rw); > lockdep_assert_held_read(&rw); > up_read(&rw); > > down_write(&rw); > lockdep_assert_held_exclusive(&rw); > up_write(&rw); > > downgrade_write(&rw); > lockdep_assert_held_read(&rw); <-- here > up_read(&rw); > } > > I was expecting that lockdep_assert_held_read() splat nothing after > downgrade_write(). Is this warning an intentional behaviour? > > Also the final up_read() gives me a warning too. It is produced at > lockdep.c:3514:lock_release(): DEBUG_LOCKS_WARN_ON(depth <= 0) I don't think you understand how it works. downgrade_write() turns a write lock into read held. To make that last sequence valid, you'd need: down_write(&rw); downgrade_write(&rw); lockdep_assert_held_read(&rw) up_read(&rw); or just not drop up_write() from the last section. -- Jens Axboe