Re: Memory allocation bug in pci hotplug

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

 



On Wed, Nov 18, 2009 at 4:14 PM, Patrick Keller <patrick.keller@xxxxxx> wrote:
> On Wed, 2009-11-18 at 21:03 +0000, Eric Biederman wrote:
>> On Wed, Nov 18, 2009 at 11:39 AM, Patrick Keller <patrick.keller@xxxxxx> wrote:
>> > I guess I'm now confused, having seen a working log where after being
>> > hotplugged the card in the slot comes back up and the non-working log
>> > where everything is broken, the regressed broken state is better?
>>
>> I may be misreading something but I see a
>> ``working'' configuration where no memory address are assign
>> to the cards, and a ``non-working'' configuration where at least
>> prefetchable memory is assigned.
>>
>> What I don't see in the ``working'' configuration is anything plugged
>> into the hotplug slots.  Nothing in bus numbers > 18.
>
> You're correct, we're actually operating on a non-hotplug slot. In the
> working case the driver is able to claim the card, and in the
> non-working case the modprobe fails.
>
>> The failure mode as I see it is actually attempting to hotplug a card
>> into those hotplug slots that don't have any resources that
>> won't work in either configuration but at least in the second configuration
>> you get an error telling you something that is wrong.
>>
>> What card in the slot are you talking about that comes back up in one and
>> fails in the other?  All I see is simulated hotplug on non-hotplug slots.
>
> The test case is exercising the logical hotplug aka. fakephp.  Fakephp
> and the pci core use the exact same hotplug code.
>
> Logical hotplug should allow us to remove and readd a device whether it
> resides in a hotplug slot or not.  I agree that we are not talking about
> physical hotplug.
>
>
> Just as a reminder, we're doing a logical remove at the level of
> 0000:0b:00.0 and rescanning the entire pci bus, the error we're seeing
> is that the QLogic device isn't coming back.

Eric,

how about change default min_size to 0 ?

#define DEFAULT_HOTPLUG_IO_SIZE         0
#define DEFAULT_HOTPLUG_MEM_SIZE        0
/* pci=hpmemsize=nnM,hpiosize=nn can override this */
unsigned long pci_hotplug_io_size  = DEFAULT_HOTPLUG_IO_SIZE;
unsigned long pci_hotplug_mem_size = DEFAULT_HOTPLUG_MEM_SIZE;

and later to use dmi or other quirks way increase those value.

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

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux