Re: [PATCH] sd name space exhaustion causes system hang

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 09/21/2010 10:58 AM, Michael Reed wrote:
> 
> 
> On 09/21/2010 10:08 AM, Hannes Reinecke wrote:
>> Michael Reed wrote:
>>> Following a site power outage which re-enabled all the ports on my FC
>>> switches, my system subsequently booted with far too many luns!  I had
>>> let it run hoping it would make multi-user.  It didn't.  :(  It hung solid
>>> after exhausting the last sd device, sdzzz, and attempting to create sdaaaa
>>> and beyond.  I was unable to get a dump.
>>>
>>> Discovered using a 2.6.32.13 based system.
>>>
>>> Patch at the bottom corrects this by detecting when the last index is
>>> utilized and failing the sd probe of the device.  Patch applies to
>>> scsi-misc-2.6.
>>>
>> Hmm. Shouldn't we rather use dynamic majors once we're over
>> SD_MAJORS? We do have enough space in the 'index' field and the name
>> is generated dynamically anyway ...
> 
> A bit beyond the scope of what I was trying to correct.  And beyond my
> current knowledge of how things work.  If you'd care to guide me, or
> provide me a patch for testing....  I can probably get my config up to
> 30,000 or so luns.
> 
> Mike

Have we exhausted SD_MAJORS when SD_MAX_DISKS is exhausted?  I don't
think so.

        gd->major = sd_major((index & 0xf0) >> 4);
        gd->first_minor = ((index & 0xf) << 4) | (index & 0xfff00);
        gd->minors = SD_MINORS;

There appear to be 16 majors allocated.  SD_MINORS is also 16.  Minors
are used for partitions, right?  The number of sd devices assigned to a
major is the max number of minors / SD_MINORS.  It appears that a minor
number is 20 bits.  That corresponds to 1,048,576 minors per major.
Dividing by 16 minors per device leaves us with 65536 sd devices which
can be assigned to a major number.

As the sd namespace is currently limited to 18,xxx devices, I don't believe
we've filled all the sd major numbers which are allocated.  16 * 65536 =
1,048,576 possible sd devices.

If this is correct, I see no reason to convert the code to dynamic majors
as it's really quite doubtful that all possible sd devices will ever be
created on a system.

Mike


> 
>>
>> Cheers,
>>
>> Hannes
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux