Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp6173685ybv; Tue, 18 Feb 2020 11:20:47 -0800 (PST) X-Google-Smtp-Source: APXvYqyB3sSTGyuhyXKOGMMpOXqCm3Qp3X9/lFnkfbC6m2oTbXORd/VDUkm+Y+U85O72xepCErML X-Received: by 2002:aca:458:: with SMTP id 85mr2315851oie.56.1582053647716; Tue, 18 Feb 2020 11:20:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582053647; cv=none; d=google.com; s=arc-20160816; b=RtncDPLT3ubN1UX8YCfd2ZjllFv0l/tiBV7eQpp8rl2UD4jcWuiyY0uTzPdFUA0cT0 piTLbVvTigyeKi9Vy+0yaWglRDHFC0FnIpw5bx//w7XkKWZet56D5o9wpeHNSASOapMK 4VbC0/xmS+SZAsbULaIYnPcKRbPxKTNLIZg8AhxgY48H3q/tChzyOyPEZaVRKA4zGerg uhZyoIebNs/194lbwqsYYOABoYAHu9NKeur8emMjfseb38pcoqWBGlLSCSzVSh8ZNoA2 zznc0iTXEyp7kJHfpA+SqsxTf2A+9euzHO8v/ztzLzszdYEeQLMNdWu4y6LdssSjCuny 2ehQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=Z0Y0s4aX7tivwHc3F2FAAxS5KoB02o6BNtA31kXDkvE=; b=F7MKqAKkKX59b9xoud9vTwEGA+k6q3lX8bJL9FfY90M9HMCW4SiOpwnG1KU6+PwnDS bhV+IziIGrBagWTKbgX8gGutbAh2uR7OivaihRfHW7G9nfwEwiYw3P3YACnUlwK1yrLl /UrCdVbAIwIXCaVT0uBNCXqsStrT1GIuNggIjHO7i3pge4mzr1Go5EXsK7EpAKCsI2xv CuzG2HXeouwCIwiMAtsPK9nH7/Tk7GLxpWtQoVZ/1r2qdFEMiQG5F4xm4UM3+3u1Hz/f Az54Ri6o3TmDpBZsQm+5zls3wCUa2peSNxSB593Absu3uDqJa36X2zdW8BWHm6n+tL+P SZkA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f17si2116078otq.96.2020.02.18.11.20.35; Tue, 18 Feb 2020 11:20:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726391AbgBRTUa (ORCPT + 99 others); Tue, 18 Feb 2020 14:20:30 -0500 Received: from mail.archive.org ([207.241.224.6]:57414 "EHLO mail.archive.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726283AbgBRTU3 (ORCPT ); Tue, 18 Feb 2020 14:20:29 -0500 Received: from mail.archive.org (localhost [127.0.0.1]) by mail.archive.org (Postfix) with ESMTP id 06B371FB34; Tue, 18 Feb 2020 19:20:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mail.archive.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT autolearn=disabled version=3.4.2 Received: from [0.0.0.0] (a82-161-36-93.adsl.xs4all.nl [82.161.36.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: merlijn@archive.org) by mail.archive.org (Postfix) with ESMTPSA id 971A71FB1D; Tue, 18 Feb 2020 19:20:23 +0000 (UTC) Subject: Re: [PATCH v2] scsi: sr: get rid of sr global mutex To: Christoph Hellwig , James Bottomley Cc: merlijn@wizzup.org, linux-scsi@vger.kernel.org, Jens Axboe , "Martin K. Petersen" , Arnd Bergmann , linux-kernel@vger.kernel.org References: <20200218143918.30267-1-merlijn@archive.org> <20200218171259.GA6724@infradead.org> <1582046428.16681.7.camel@linux.ibm.com> <20200218172347.GA3020@infradead.org> <1582046914.16681.11.camel@linux.ibm.com> <20200218173158.GA18386@infradead.org> From: "Merlijn B.W. Wajer" Message-ID: <33da5f81-ad37-05fd-d765-8bd997995dd2@archive.org> Date: Tue, 18 Feb 2020 20:21:35 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.0 MIME-Version: 1.0 In-Reply-To: <20200218173158.GA18386@infradead.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Envelope-From: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 18/02/2020 18:31, Christoph Hellwig wrote: > On Tue, Feb 18, 2020 at 09:28:34AM -0800, James Bottomley wrote: >> On Tue, 2020-02-18 at 09:23 -0800, Christoph Hellwig wrote: >>> On Tue, Feb 18, 2020 at 09:20:28AM -0800, James Bottomley wrote: >>>>>> Replace the global mutex with per-sr-device mutex. >>>>> >>>>> Do we actually need the lock at all? What is protected by it? >>>> >>>> We do at least for cdrom_open. It modifies the cdi structure with >>>> no other protection and concurrent modification would at least >>>> screw up the use counter which is not atomic. Same reasoning for >>>> cdrom_release. >>> >>> Wouldn't the right fix to add locking to cdrom_open/release instead >>> of having an undocumented requirement for the callers? >> >> Yes ... but that's somewhat of a bigger patch because you now have to >> reason about the callbacks within cdrom. There's also the question of >> whether you can assume ops->generic_packet() has its own concurrency >> protections ... it's certainly true for SCSI, but is it for anything >> else? Although I suppose you can just not care and run the internal >> lock over it anyway. > > We have 4 instances of struct cdrom_device_ops in the kernel, one of > which has a no-op generic_packet. So I don't think this should be a > huge project. The are two reasons I decided to make minor changes to fix the performance regression. First, being able to send the patch to the various stable branches once merged. For people working with many CD drives attached to one station, this is a pretty big deal, so I tried to keep the patch simple. It fixes the regression introduced in another commit. Secondly, I don't have the hardware to test sophisticated or old setups, like some of the issues linked from my patch. I have SATA CD drives with USB->SATA bridges, no IDE, no PATA, etc. So the testing I can do is relatively limited. Perhaps I or someone else can work on removing the usage of the locks, but as it stands I think this addresses the performance issue present in the current kernel, and removing locks and the associated testing required with that is something I am not entirely comfortable doing. Cheers, Merlijn