Thread (24 messages) 24 messages, 3 authors, 2013-03-22

Re: [PATCH2/11] Add PRRN Event Handler

From: Nathan Fontenot <hidden>
Date: 2013-03-19 18:02:30

On 03/14/2013 03:51 AM, Paul Mackerras wrote:
On Fri, Mar 08, 2013 at 10:00:09PM -0600, Nathan Fontenot wrote:
quoted
From: Jesse Larrew <redacted>

A PRRN event is signaled via the RTAS event-scan mechanism, which
returns a Hot Plug Event message "fixed part" indicating "Platform
Resource Reassignment". In response to the Hot Plug Event message,
we must call ibm,update-nodes to determine which resources were
reassigned and then ibm,update-properties to obtain the new affinity
information about those resources.

The PRRN event-scan RTAS message contains only the "fixed part" with
the "Type" field set to the value 160 and no Extended Event Log. The
four-byte Extended Event Log Length field is repurposed (since no
Extended Event Log message is included) to pass the "scope" parameter
that causes the ibm,update-nodes to return the nodes affected by the
specific resource reassignment.

This patch adds a handler in rtasd for PRRN RTAS events. The function
pseries_devicetree_update() (from mobility.c) is used to make the
ibm,update-nodes/ibm,update-properties RTAS calls. Updating the NUMA maps
(handled by a subsequent patch) will require significant processing,
so pseries_devicetree_update() is called from an asynchronous workqueue
to allow rtasd to continue processing events.

Signed-off-by: Nathan Fontenot <redacted>
[snip]
quoted
+static s32 update_scope;
Do we have a guarantee that there can only be one of these events
outstanding at a time?  If so it would be nice to document that in a
comment next to this declaration, so we know in future that this is
why this is safe.
We only allow for one event to be outstanding. When a PRRN Event is
received we flush any work currently queued up and add the new event
event to the workqueue (see prrn_schedule_work() from the patch).

As I understand flush_work(), this would wait for any work in flight
to complete, then remove all work before returning. I'll add a comment
and update the patch description.

-Nathan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help