[ofw] RE: pnpdtest problems with IPoIB
Leonid Keller
leonid at mellanox.co.il
Wed Nov 19 07:26:05 PST 2008
To remind: i'm running 'pnpdtest Rebalance(FailRestart)' test over
IPoIB.
[pnpddtest is taken from 6001.18001 DDK, v. 3.4.0.0, created 01/19/2008]
The test fails with 'Device node status not as expected: problem code 0'
yet on the preliminary (QUERY_STOP) phase.
I've run it with WinDbg, while stopping at the beginning of each IRP and
printing the relative device nodes.
The test reports an error after CANCEL_STOP_DEVICE IRP, while device
node changes from
State = DeviceNodeQueryStopped (0x309)
Previous State = DeviceNodeStarted (0x308)
StateHistory[01] = DeviceNodeStarted (0x308)
to
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeStarted (0x308)
StateHistory[02] = DeviceNodeQueryStopped (0x309)
StateHistory[01] = DeviceNodeStarted (0x308)
I would expect
Previous State = DeviceNodeQueryStopped (0x309)
Is that what causes the test failure ?
Why does it happen ? (I complete CANCEL_STOP_DEVICE with SUCCESS)
Here is the trace.
//
// here is the previous IRP sequence (important ones are marked with
***)
//
IRP_MN_QUERY_PNP_DEVICE_STATE for IPoIB - 0
IRP_MN_QUERY_DEVICE_RELATIONS for IPoIB - 0xc00000bb
IRP_MN_QUERY_PNP_DEVICE_STATE for IPoIB - 0
IRP_MN_QUERY_STOP_DEVICE for IB Bus - 0x103
IRP_MN_CANCEL_STOP_DEVICE for IB Bus - 0
*** IRP_MN_QUERY_STOP_DEVICE for IPoIB - 0
IRP_MN_QUERY_RESOURCE_REQUIREMENTS for IPoIB - 0xc00000bb
IRP_MN_FILTER_RESOURCE_REQUIREMENTS for IPoIB - 0
IRP_MN_QUERY_INTERFACE for IPoIB - 0xc00000bb
IRP_MN_QUERY_INTERFACE for IB Bus - 0xc00000bb
IRP_MN_QUERY_INTERFACE for IB Bus - 0xc00000bb
*** IRP_MN_QUERY_STOP_DEVICE for IB Bus - 0x103
IRP_MN_QUERY_RESOURCE_REQUIREMENTS for IPoIB - 0xc00000bb
IRP_MN_FILTER_RESOURCE_REQUIREMENTS for IPoIB - 0
IRP_MN_QUERY_RESOURCE_REQUIREMENTS for IB Bus - 0
IRP_MN_FILTER_RESOURCE_REQUIREMENTS for IB Bus - 0
//
// Comes IRP_MN_CANCEL_STOP_DEVICE for IPoIB (not completed yet)
//
PNPFILTR: Received IRP_MN_CANCEL_STOP_DEVICE for stack with PDO
0xFFFFFADF315C1840
cl_pnp() [
cl_pnp(): PDO FFFFFADF315C1840, ext FFFFFADF315C1990
cl_pnp(): IRP_MN_CANCEL_STOP_DEVICE for IPoIB
//
// Here is IPoIB's node at this moment (looks OK)
//
2: kd> !DevNode fffffadf31481360
DevNode 0xfffffadf31481360 for PDO 0xfffffadf315c1840
Parent 0xfffffadf31943e40 Sibling 0xfffffadf31c5b5c0 Child
0000000000
InstancePath is "IBA\IPoIB\c181250002c90200ffff"
ServiceName is "ipoib"
State = DeviceNodeQueryStopped (0x309)
Previous State = DeviceNodeStarted (0x308)
StateHistory[01] = DeviceNodeStarted (0x308)
StateHistory[00] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[19] = DeviceNodeStarted (0x308)
StateHistory[18] = DeviceNodeStartPostWork (0x307)
StateHistory[17] = DeviceNodeStartCompletion (0x306)
StateHistory[16] = DeviceNodeResourcesAssigned (0x304)
StateHistory[15] = DeviceNodeDriversAdded (0x303)
StateHistory[14] = DeviceNodeInitialized (0x302)
StateHistory[13] = DeviceNodeUninitialized (0x301)
StateHistory[12] = DeviceNodeRemoved (0x312)
StateHistory[11] = DeviceNodeQueryRemoved (0x310)
StateHistory[10] = DeviceNodeStarted (0x308)
StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[08] = DeviceNodeStarted (0x308)
StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[06] = DeviceNodeStarted (0x308)
StateHistory[05] = DeviceNodeStartPostWork (0x307)
StateHistory[04] = DeviceNodeStartCompletion (0x306)
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
StateHistory[02] = DeviceNodeDriversAdded (0x303)
Flags (0x00000430) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_RESOURCE_REQUIREMENTS_CHANGED
CapabilityFlags (0x000000c0) UniqueID, SilentInstall
//
// Here is MLX4_HCA's node at this moment (looks OK)
//
2: kd> !DevNode fffffadf31943e40
DevNode 0xfffffadf31943e40 for PDO 0xfffffadf314ece40
Parent 0xfffffadf386dbe40 Sibling 0000000000 Child
0xfffffadf31481360
InstancePath is "MLX4\ConnectX_Hca\5&2814ebde&0&00"
ServiceName is "mlx4_hca"
TargetDeviceNotify List - f 0xfffffa8011960260 b 0xfffffa8011960260
State = DeviceNodeQueryStopped (0x309)
Previous State = DeviceNodeStarted (0x308)
StateHistory[18] = DeviceNodeStarted (0x308)
StateHistory[17] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[16] = DeviceNodeStarted (0x308)
StateHistory[15] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[14] = DeviceNodeStarted (0x308)
StateHistory[13] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[12] = DeviceNodeStarted (0x308)
StateHistory[11] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[10] = DeviceNodeStarted (0x308)
StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[08] = DeviceNodeStarted (0x308)
StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[06] = DeviceNodeStarted (0x308)
StateHistory[05] = DeviceNodeStartPostWork (0x307)
StateHistory[04] = DeviceNodeStartCompletion (0x306)
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
StateHistory[02] = DeviceNodeDriversAdded (0x303)
StateHistory[01] = DeviceNodeInitialized (0x302)
StateHistory[00] = DeviceNodeUninitialized (0x301)
StateHistory[19] = Unknown State (0x0)
Flags (0x00000130) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_NO_RESOURCE_REQUIRED
//
// Here comes the next IRP, IRP_MN_CANCEL_STOP_DEVICE for IB Bus
// The previous one i've completed OK - see the next line
//
cl_pnp(): IrpComplete: complete IRP with status 0
PNPFILTR: FilterCompletionRoutine Completed, event set.
cl_pnp(): returned with status 0
cl_pnp() ]
// I don't know, what the following means -maybe it designates some
problem
PNPFILTR: FilterCancelStop Setting TestCompleteEvent for stack with PDO
0xFFFFFADF315C1840
PNPFILTR: FilterCancelStop returning 0x0000000000000000 for stack with
PDO 0xFFFFFADF315C1840
PNPFILTR: Query Result Wait Satisfied... 8
PNPFILTR: Number of IRPs Stored... 8
PNPFILTR: Query Result - Releasing the remove
PNPFILTR: Query Result -Result Stored Event set
cl_pnp() [
cl_pnp(): PDO FFFFFADF35966B80, ext FFFFFADF35966CD0
cl_pnp(): IRP_MN_CANCEL_STOP_DEVICE for IB Bus
//
// Here is IPoIB's node at this moment
// The field 'Previous State' looks very strange. It should be
DeviceNodeQueryStopped to my mind.
//
2: kd> !DevNode fffffadf31481360
DevNode 0xfffffadf31481360 for PDO 0xfffffadf315c1840
Parent 0xfffffadf31943e40 Sibling 0xfffffadf31c5b5c0 Child
0000000000
InstancePath is "IBA\IPoIB\c181250002c90200ffff"
ServiceName is "ipoib"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeStarted (0x308)
StateHistory[02] = DeviceNodeQueryStopped (0x309)
StateHistory[01] = DeviceNodeStarted (0x308)
StateHistory[00] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[19] = DeviceNodeStarted (0x308)
StateHistory[18] = DeviceNodeStartPostWork (0x307)
StateHistory[17] = DeviceNodeStartCompletion (0x306)
StateHistory[16] = DeviceNodeResourcesAssigned (0x304)
StateHistory[15] = DeviceNodeDriversAdded (0x303)
StateHistory[14] = DeviceNodeInitialized (0x302)
StateHistory[13] = DeviceNodeUninitialized (0x301)
StateHistory[12] = DeviceNodeRemoved (0x312)
StateHistory[11] = DeviceNodeQueryRemoved (0x310)
StateHistory[10] = DeviceNodeStarted (0x308)
StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[08] = DeviceNodeStarted (0x308)
StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[06] = DeviceNodeStarted (0x308)
StateHistory[05] = DeviceNodeStartPostWork (0x307)
StateHistory[04] = DeviceNodeStartCompletion (0x306)
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
Flags (0x00000430) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_RESOURCE_REQUIREMENTS_CHANGED
CapabilityFlags (0x000000c0) UniqueID, SilentInstall
//
// Here is MLX4_HCA's node at this moment - it looks OK
// (We are standing in 'IRP_MN_CANCEL_STOP_DEVICE for IB Bus'
// It is not completed yet)
//
2: kd> !DevNode fffffadf31943e40
DevNode 0xfffffadf31943e40 for PDO 0xfffffadf314ece40
Parent 0xfffffadf386dbe40 Sibling 0000000000 Child
0xfffffadf31481360
InstancePath is "MLX4\ConnectX_Hca\5&2814ebde&0&00"
ServiceName is "mlx4_hca"
TargetDeviceNotify List - f 0xfffffa8011960260 b 0xfffffa8011960260
State = DeviceNodeQueryStopped (0x309)
Previous State = DeviceNodeStarted (0x308)
StateHistory[18] = DeviceNodeStarted (0x308)
StateHistory[17] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[16] = DeviceNodeStarted (0x308)
StateHistory[15] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[14] = DeviceNodeStarted (0x308)
StateHistory[13] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[12] = DeviceNodeStarted (0x308)
StateHistory[11] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[10] = DeviceNodeStarted (0x308)
StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[08] = DeviceNodeStarted (0x308)
StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[06] = DeviceNodeStarted (0x308)
StateHistory[05] = DeviceNodeStartPostWork (0x307)
StateHistory[04] = DeviceNodeStartCompletion (0x306)
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
StateHistory[02] = DeviceNodeDriversAdded (0x303)
StateHistory[01] = DeviceNodeInitialized (0x302)
StateHistory[00] = DeviceNodeUninitialized (0x301)
StateHistory[19] = Unknown State (0x0)
Flags (0x00000130) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_NO_RESOURCE_REQUIRED
//
// I make 'go' and get the following before getting more IRPs - because
the test throws a window
// with 'Device node status not as expected: problem code 0' text.
// (the next line is completion of 'IRP_MN_CANCEL_STOP_DEVICE for IB
Bus')
//
cl_pnp(): IrpComplete: complete IRP with status 0
cl_pnp(): returned with status 0
cl_pnp() ]
Relevant Sequence of Irps:
IRP_MN_QUERY_PNP_DEVICE_STATE
IRP_MN_QUERY_STOP_DEVICE
IRP_MN_QUERY_RESOURCE_REQUIREMENTS
IRP_MN_FILTER_RESOURCE_REQUIREMENTS
IRP_MN_QUERY_INTERFACE
IRP_MN_QUERY_RESOURCE_REQUIREMENTS
IRP_MN_FILTER_RESOURCE_REQUIREMENTS
IRP_MN_CANCEL_STOP_DEVICE
Assert: Device node status not as expected: problem code 0
File=e:\rtm_test\testsrc\basetest\pnp\pnpdtest\user\pnpdtest.c,
Line=323
//
// Next IRP: IRP_MN_QUERY_DEVICE_RELATIONS for IPoIB
//
UnInstalling the filter driver from IBA\IPoIB\c181250002c90200ffff...
PNPFILTR: Received IRP_MN_QUERY_DEVICE_RELATIONS which I am simply
passing down
cl_pnp() [
cl_pnp(): PDO FFFFFADF315C1840, ext FFFFFADF315C1990
cl_pnp(): IRP_MN_QUERY_DEVICE_RELATIONS for IPoIB
//
// Devnode of IPoIB is still strange
//
1: kd> !DevNode fffffadf31481360
DevNode 0xfffffadf31481360 for PDO 0xfffffadf315c1840
Parent 0xfffffadf31943e40 Sibling 0xfffffadf31c5b5c0 Child
0000000000
InstancePath is "IBA\IPoIB\c181250002c90200ffff"
ServiceName is "ipoib"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeStarted (0x308)
StateHistory[02] = DeviceNodeQueryStopped (0x309)
StateHistory[01] = DeviceNodeStarted (0x308)
StateHistory[00] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[19] = DeviceNodeStarted (0x308)
StateHistory[18] = DeviceNodeStartPostWork (0x307)
StateHistory[17] = DeviceNodeStartCompletion (0x306)
StateHistory[16] = DeviceNodeResourcesAssigned (0x304)
StateHistory[15] = DeviceNodeDriversAdded (0x303)
StateHistory[14] = DeviceNodeInitialized (0x302)
StateHistory[13] = DeviceNodeUninitialized (0x301)
StateHistory[12] = DeviceNodeRemoved (0x312)
StateHistory[11] = DeviceNodeQueryRemoved (0x310)
StateHistory[10] = DeviceNodeStarted (0x308)
StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[08] = DeviceNodeStarted (0x308)
StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[06] = DeviceNodeStarted (0x308)
StateHistory[05] = DeviceNodeStartPostWork (0x307)
StateHistory[04] = DeviceNodeStartCompletion (0x306)
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
Flags (0x00000430) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_RESOURCE_REQUIREMENTS_CHANGED
CapabilityFlags (0x000000c0) UniqueID, SilentInstall
//
// Devnode of MLX4_HCA is OK
//
1: kd> !DevNode fffffadf31943e40
DevNode 0xfffffadf31943e40 for PDO 0xfffffadf314ece40
Parent 0xfffffadf386dbe40 Sibling 0000000000 Child
0xfffffadf31481360
InstancePath is "MLX4\ConnectX_Hca\5&2814ebde&0&00"
ServiceName is "mlx4_hca"
TargetDeviceNotify List - f 0xfffffa8011960260 b 0xfffffa8011960260
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeStarted (0x308)
StateHistory[19] = DeviceNodeQueryStopped (0x309)
StateHistory[18] = DeviceNodeStarted (0x308)
StateHistory[17] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[16] = DeviceNodeStarted (0x308)
StateHistory[15] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[14] = DeviceNodeStarted (0x308)
StateHistory[13] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[12] = DeviceNodeStarted (0x308)
StateHistory[11] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[10] = DeviceNodeStarted (0x308)
StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[08] = DeviceNodeStarted (0x308)
StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d)
StateHistory[06] = DeviceNodeStarted (0x308)
StateHistory[05] = DeviceNodeStartPostWork (0x307)
StateHistory[04] = DeviceNodeStartCompletion (0x306)
StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
StateHistory[02] = DeviceNodeDriversAdded (0x303)
StateHistory[01] = DeviceNodeInitialized (0x302)
StateHistory[00] = DeviceNodeUninitialized (0x301)
Flags (0x00000130) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_NO_RESOURCE_REQUIRED
//
// here are the structures
//
// IPoIB's PDO
2: kd> dt DEVICE_OBJECT 0xfffffadf315c1840
ipoib!DEVICE_OBJECT
+0x000 Type : 3
+0x002 Size : 0x308
+0x004 ReferenceCount : 0
+0x008 DriverObject : 0xfffffadf`31c5ecb0 _DRIVER_OBJECT
+0x010 NextDevice : 0xfffffadf`35966b80 _DEVICE_OBJECT
+0x018 AttachedDevice : 0xfffffadf`31bfc090 _DEVICE_OBJECT
+0x020 CurrentIrp : (null)
+0x028 Timer : (null)
+0x030 Flags : 0x3040
+0x034 Characteristics : 0x180
+0x038 Vpb : (null)
+0x040 DeviceExtension : 0xfffffadf`315c1990
+0x048 DeviceType : 4
+0x04c StackSize : 1 ''
+0x050 Queue : <unnamed-tag>
+0x098 AlignmentRequirement : 0
+0x0a0 DeviceQueue : _KDEVICE_QUEUE
+0x0c8 Dpc : _KDPC
+0x108 ActiveThreadCount : 0
+0x110 SecurityDescriptor : 0xfffffa80`0034e600
+0x118 DeviceLock : _KEVENT
+0x130 SectorSize : 0
+0x132 Spare1 : 2
+0x138 DeviceObjectExtension : 0xfffffadf`315c1b48 _DEVOBJ_EXTENSION
+0x140 Reserved : (null)
// It's devobj extension
2: kd> dt 0xfffffadf`315c1b48 _DEVOBJ_EXTENSION
nt!_DEVOBJ_EXTENSION
+0x000 Type : 13
+0x002 Size : 0
+0x008 DeviceObject : 0xfffffadf`315c1840 _DEVICE_OBJECT
+0x010 PowerFlags : 0x10
+0x018 Dope : (null)
+0x020 ExtensionFlags : 0
+0x028 DeviceNode : 0xfffffadf`31481360
+0x030 AttachedTo : (null)
+0x038 StartIoCount : 0
+0x03c StartIoKey : 0
+0x040 StartIoFlags : 0
+0x048 Vpb : (null)
// It's node
2: kd> dt 0xfffffadf`31481360 _DEVICE_NODE
nt!_DEVICE_NODE
+0x000 Sibling : 0xfffffadf`31c5b5c0 _DEVICE_NODE
+0x008 Child : (null)
+0x010 Parent : 0xfffffadf`31943e40 _DEVICE_NODE
+0x018 LastChild : (null)
+0x020 Level : 7
+0x028 Notify : (null)
+0x030 State : 308 ( DeviceNodeStarted )
+0x034 PreviousState : 308 ( DeviceNodeStarted )
+0x038 StateHistory : [20] 30d ( DeviceNodeEnumerateCompletion )
+0x088 StateHistoryEntry : 3
+0x08c CompletionStatus : -1073741637
+0x090 PendingIrp : (null)
+0x098 Flags : 0x430
+0x09c UserFlags : 0
+0x0a0 Problem : 0
+0x0a8 PhysicalDeviceObject : 0xfffffadf`315c1840 _DEVICE_OBJECT
+0x0b0 ResourceList : (null)
+0x0b8 ResourceListTranslated : (null)
+0x0c0 InstancePath : _UNICODE_STRING
"IBA\IPoIB\c181250002c90200ffff"
+0x0d0 ServiceName : _UNICODE_STRING "ipoib"
+0x0e0 DuplicatePDO : (null)
+0x0e8 ResourceRequirements : 0xfffffa80`14de7640
_IO_RESOURCE_REQUIREMENTS_LIST
+0x0f0 InterfaceType : 0xffffffff (No matching name)
+0x0f4 BusNumber : 0xfffffff0
+0x0f8 ChildInterfaceType : f ( PNPBus )
+0x0fc ChildBusNumber : 0
+0x100 ChildBusTypeIndex : 3
+0x102 RemovalPolicy : 0x1 ''
+0x103 HardwareRemovalPolicy : 0x1 ''
+0x108 TargetDeviceNotify : _LIST_ENTRY [ 0xfffffadf`31481468 -
0xfffffadf`31481468 ]
+0x118 DeviceArbiterList : _LIST_ENTRY [ 0xfffffadf`31481478 -
0xfffffadf`31481478 ]
+0x128 DeviceTranslatorList : _LIST_ENTRY [ 0xfffffadf`31481488 -
0xfffffadf`31481488 ]
+0x138 NoTranslatorMask : 8
+0x13a QueryTranslatorMask : 8
+0x13c NoArbiterMask : 0
+0x13e QueryArbiterMask : 0
+0x140 OverUsed1 : <unnamed-tag>
+0x148 OverUsed2 : <unnamed-tag>
+0x150 BootResources : (null)
+0x158 CapabilityFlags : 0xc0
+0x160 DockInfo : <unnamed-tag>
+0x180 DisableableDepends : 0
+0x188 PendedSetInterfaceState : _LIST_ENTRY [ 0xfffffadf`314814e8 -
0xfffffadf`314814e8 ]
+0x198 LegacyBusListEntry : _LIST_ENTRY [ 0xfffffadf`314814f8 -
0xfffffadf`314814f8 ]
+0x1a8 DriverUnloadRetryCount : 0
+0x1b0 PreviousParent : (null)
+0x1b8 DeletedChildren : 0
> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org
> [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Leonid Keller
> Sent: Saturday, November 15, 2008 11:14 PM
> To: Fab Tillier; Stan C. Smith
> Cc: ofw at lists.openfabrics.org
> Subject: [ofw] RE: pnpdtest problems with IPoIB
>
> See inline
>
> > -----Original Message-----
> > From: Fab Tillier [mailto:ftillier at windows.microsoft.com]
> > Sent: Friday, November 14, 2008 6:20 PM
> > To: Leonid Keller; Stan C. Smith
> > Cc: ofw at lists.openfabrics.org
> > Subject: RE: pnpdtest problems with IPoIB
> >
> > Hi Leo,
> >
> > >The test first sends IRP_MN_QUERY_STOP_DEVICE to IPoIB.
> > >IPoIB skips it down to IB_BUS, it skips it down to MLX4_HCA
> > and the latter >returns 103 (STATUS_PENDING), which get returned to
> > PnP manager.
> >
> > Why is the bus driver passing the IRP from the PDO's device
> node down
> > to its parent? The IPoIB instance is being QUERY_STOP'd,
> not the HCA.
> > Why isn't the bus driver completing it (in the context of the PDO)?
>
> My description was not exact, sorry.
> The bus driver (bus_port_mgr.c) completes it OK.
> But then PnP manager sends QUERY_STOP to the FDO (bus_pnp.c),
> which - as FDO is expected to - skips it down the stack till
> the bus driver.
> I've attached a trace with more prints.
> Here is a quote from this trace with snips (lines 85-148):
>
> cl_pnp() [
> cl_pnp(): IRP_MN_QUERY_STOP_DEVICE for IPoIB
> cl_pnp(): IrpComplete: complete IRP with status 0
> cl_pnp() ]
>
> cl_pnp() [
> cl_pnp(): IRP_MN_QUERY_RESOURCE_REQUIREMENTS for IPoIB
> cl_pnp(): IrpComplete: complete IRP with status 0xc00000bb
> cl_pnp() ]
>
> cl_pnp() [
> cl_pnp(): IRP_MN_FILTER_RESOURCE_REQUIREMENTS for IPoIB
> cl_pnp(): IrpComplete: complete IRP with status 0xc00000bb
> cl_pnp() ]
>
> cl_pnp() [
> cl_pnp(): IRP_MN_QUERY_STOP_DEVICE for IB Bus
> cl_pnp(): IrpSkip/IrpIgnore: passing down to PDO 92E964C0,
> ext 85BE83E0, status 0
> cl_pnp() [
> cl_pnp(): IRP_MN_QUERY_STOP_DEVICE for MLX4_HCA driver
> cl_pnp(): IrpSkip/IrpIgnore: passing down to PDO 87D77D58,
> ext 92E96578, status 0
> cl_pnp(): returned with status 0x103
> cl_pnp() ]
> cl_pnp(): returned with status 0x103
> cl_pnp() ]
>
> ...
>
> PNPFILTR: FilterCompletionRoutine Completed, event set.
> PNPFILTR: FilterCancelStop Setting TestCompleteEvent for
> stack with PDO 0x874A8530
> PNPFILTR: FilterCancelStop returning 0x00000000 for stack
> with PDO 0x874A8530
> PNPFILTR: Query Result Wait Satisfied... 6
> PNPFILTR: Number of IRPs Stored... 6
> PNPFILTR: Query Result - Releasing the remove
> PNPFILTR: Query Result -Result Stored Event set Relevant
> Sequence of Irps:
> IRP_MN_QUERY_PNP_DEVICE_STATE
> IRP_MN_QUERY_STOP_DEVICE
> IRP_MN_QUERY_RESOURCE_REQUIREMENTS
> IRP_MN_FILTER_RESOURCE_REQUIREMENTS
> IRP_MN_QUERY_INTERFACE
> IRP_MN_CANCEL_STOP_DEVICE
> Assert: Device node status not as expected: problem code 0
> File=d:\rtm_test\testsrc\basetest\pnp\pnpdtest\user\pnpdtest.c,
> Line=323
>
> >
> > -Fab
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20081119/75193439/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rebalance_failrestart_debugger_info.LOG
Type: application/octet-stream
Size: 17558 bytes
Desc: rebalance_failrestart_debugger_info.LOG
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20081119/75193439/attachment.obj>
More information about the ofw
mailing list