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