[lkml]   [2012]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] [SCSI] sr: fix multi-drive performance, remove BKL replacement
    On Tuesday 28 February 2012, James Bottomley wrote:
    > On Tue, 2012-02-28 at 17:09 +0100, Stefan Richter wrote:
    > > On Feb 28 James Bottomley wrote:
    > >
    > > While I do remove sr_mutex aroud scsi_cd_get/put() calls, these ones
    > > internally use another lock: sr_ref_mutex. Always did, still do, since
    > > neither Arnd's mechanical BKL pushdown and BKL-to-mutex conversions
    > > patches nor my patch changed that. This sr_ref_mutex also protects sr's
    > > reference counting outside of the three block_device_operations methods
    > > which I changed.
    > >
    > > I suppose I could have mentioned right away in the changelog that the
    > > sr driver's own reference counting serialization remains in place, via that
    > > other mutex.
    > OK, agreed ... the thing that caught my eye was the get/open and the
    > release/put, but I think that's completely safe.

    I took another look and I believe the cdi->use_count in
    cdrom_open/cdrom_release still requires some protection that is
    currently provided by sr_mutex. Some parts of cdrom_ioctl also
    access this variable and things like cdi->options or cdi->keeplocked.

    I could imagine that you can get rid of the mutex if you turn those
    into atomics and bitops, but there may be other parts of cdrom_device_info
    that need locking. A safer option to solve the performance problems
    could be to replace sr_mutex with a per-device mutex inside of


     \ /
      Last update: 2012-02-28 17:45    [W:0.021 / U:11.480 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site