[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