From: Otto Meta <otto.kernel.02e4af24@sister-shadow.de>
To: linux-scsi@vger.kernel.org
Subject: Re: [PATCH] [SCSI] sr: Fix multi-drive performance by using per-device mutexes
Date: Fri, 04 Jan 2013 00:11:29 +0100 [thread overview]
Message-ID: <50E61021.20709@sister-shadow.de> (raw)
In-Reply-To: <50E2F09A.6030606@sister-shadow.de>
Otto Meta wrote:
> The single mutex for the sr module, introduced as a BKL replacement,
> globally serialises all sr ioctls, which hurts multi-drive performance.
>
> This patch replaces sr_mutex with per-device mutexes in struct scsi_cd,
> allowing concurrent ioctls on different sr devices.
Unfortunately it wasn't as easy as that. The patch seems to introduce
a race condition that corrupts a drive's state under certain circumstances.
When two drives (e.g. sr0 and sr1) are attached to the same IDE cable, one
drive has its door locked, which will usually be the case after any operation
on the drive with inserted media (and whenever it feels like it, even with
dev.cdrom.lock=0), and the other drive is unlocked, then executing
$ eject sr0 & eject sr1
will eject the unlocked drive and the locked drive will return
eject: unable to eject, last error: Inappropriate ioctl for device
Other drivers down the road probably don't expect concurrent ioctls, so this
patch cannot be applied safely at this time. Sorry about the noise.
For the record: Tested with kernels 3.2.35 and 3.8.0-rc1, using IDE CD/DVD
drives connected via the drivers ata_piix and pata_pdc202xx_old.
next prev parent reply other threads:[~2013-01-03 23:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-01 14:20 [PATCH] [SCSI] sr: Fix multi-drive performance by using per-device mutexes Otto Meta
2013-01-03 23:11 ` Otto Meta [this message]
2013-01-04 19:50 ` Stefan Richter
2013-01-04 21:26 ` Wakko Warner
2013-01-04 23:05 ` Otto Meta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50E61021.20709@sister-shadow.de \
--to=otto.kernel.02e4af24@sister-shadow.de \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.