vio.c:__vio_register_driver && LPAR Migration issue
Michael Bringmann
mwb at linux.vnet.ibm.com
Tue Aug 7 01:35:15 AEST 2018
On 08/04/2018 06:01 PM, Tyrel Datwyler wrote:
> On 08/03/2018 02:23 PM, Tyrel Datwyler wrote:
>> On 08/02/2018 11:15 AM, Michael Bringmann wrote:
>>> Hello:
>>> I have been observing an anomaly during LPAR migrations between
>>> a couple of P8 systems.
>>>
>>> This is the problem. After migrating an LPAR, the PPC mobility code
>>> receives RTAS requests to delete nodes with platform-/hardware-specific
>>> attributes when restarting the kernel after a migration. My example is
>>> for migration between a P8 Alpine and a P8 Brazos. Among the nodes
>>> that I see being deleted are 'ibm,random-v1', 'ibm,compression-v1',
>>> 'ibm,platform-facilities', and 'ibm,sym-encryption-v1'. Of these
>>> nodes, the following are created during initial boot by calls to
>>> vio_register_driver:
>>>
>>> drivers/char/hw_random/pseries-rng.c
>>> ibm,random-v1
>>>
>>> drivers/crypto/nx/nx-842-pseries.c
>>> ibm,compression-v1
>>>
>>> drivers/crypto/nx/nx.c
>>> ibm,sym-encryption-v1
>>>
>>> After the migration, these nodes are deleted, but nothing recreates
>>> them. If I boot the LPAR on the target system, the nodes are added
>>> again.
>>>
>>> My question is how do we recreate these nodes after migration?
>>
>> Hmm, I'd have to see the scenario in action, but these should be added back by ibm,update-nodes RTAS call. There is some debug code in driver/of/dynamic.c that can be enabled that will log node/property dynamic reconfiguration events.
>>
>
> I took a quick look by turning of phandle caching and turning on the OF reconfig debug on one of my lpars. I noticed that it looks like this could be a firmware issue. Looks to me like we aren't being notified to re-add those child nodes of ibm,platform-facilities.
>
> [ 1671.638041] OF: notify DETACH_NODE /cpus/l2-cache at 2022
> [ 1671.638094] OF: notify DETACH_NODE /cpus/l3-cache at 3122
> [ 1671.638119] OF: notify DETACH_NODE /cpus/l2-cache at 2023
> [ 1671.638136] OF: notify DETACH_NODE /cpus/l3-cache at 3123
> [ 1671.638164] OF: notify DETACH_NODE /ibm,platform-facilities/ibm,random-v1
> [ 1671.638182] OF: notify DETACH_NODE /ibm,platform-facilities/ibm,compression-v1
> [ 1671.638198] OF: notify DETACH_NODE /ibm,platform-facilities/ibm,sym-encryption-v1
> [ 1671.638219] OF: notify DETACH_NODE /ibm,platform-facilities
> [ 1671.776419] OF: notify UPDATE_PROPERTY /:ibm,model-class
>
> ... snipped property updates
>
> [ 1672.129941] OF: notify UPDATE_PROPERTY /cpus/PowerPC,POWER8 at 8:ibm,dfp
> [ 1672.147551] OF: notify ATTACH_NODE /cpus/l2-cache at 202e
> [ 1672.166321] OF: notify ATTACH_NODE /cpus/l3-cache at 312e
> [ 1672.183971] OF: notify ATTACH_NODE /cpus/l2-cache at 202f
> [ 1672.202752] OF: notify ATTACH_NODE /cpus/l3-cache at 312f
> [ 1672.230760] OF: notify ATTACH_NODE /ibm,platform-facilities
>
> Need to verify this by tracing the RTAS calls to ibm,update-nodes. I'll try and look at that tomorrow. The loop that processes the nodes to update in pseries_devicetree_update() blindly ignores the return codes from delete_dt_node(), update_dt_node(), and add_dt_node(). So, it is also possible that we are notified, but are silently failing the add.
I am seeing the same set of detach/attach events for migration between an Alpine and Brazos.
I did the logging up in delete_dt_node, update_dt_node, and add_dt_node, and did not see any
notification of additional nodes.
>
> -Tyrel
>
Michael
--
Michael W. Bringmann
Linux Technology Center
IBM Corporation
Tie-Line 363-5196
External: (512) 286-5196
Cell: (512) 466-0650
mwb at linux.vnet.ibm.com
More information about the Linuxppc-dev
mailing list