Re: [driver-core PATCH v5 2/9] async: Add support for queueing on specific NUMA node

From: Bart Van Assche
Date: Tue Nov 06 2018 - 19:50:36 EST


On Mon, 2018-11-05 at 13:11 -0800, Alexander Duyck wrote:
+AD4 +-/+ACoAKg
+AD4 +- +ACo async+AF8-schedule+AF8-domain - schedule a function for asynchronous execution within a certain domain
+AD4 +- +ACo +AEA-func: function to execute asynchronously
+AD4 +- +ACo +AEA-data: data pointer to pass to the function
+AD4 +- +ACo +AEA-domain: the domain
+AD4 +- +ACo
+AD4 +- +ACo Returns an async+AF8-cookie+AF8-t that may be used for checkpointing later.
+AD4 +- +ACo +AEA-domain may be used in the async+AF8-synchronize+AF8AKgBf-domain() functions to
+AD4 +- +ACo wait within a certain synchronization domain rather than globally. A
+AD4 +- +ACo synchronization domain is specified via +AEA-domain.
+AD4 +- +ACo Note: This function may be called from atomic or non-atomic contexts.
+AD4 +- +ACo-/

Please leave out +ACI-A synchronization domain is specified via +AEA-domain.+ACI since
that text is redundant due to +ACIAQA-domain: the domain+ACI.

+AD4 +-/+ACoAKg
+AD4 +- +ACo async+AF8-schedule+AF8-dev+AF8-domain - A device specific version of async+AF8-schedule+AF8-domain
+AD4 +- +ACo +AEA-func: function to execute asynchronously
+AD4 +- +ACo +AEA-dev: device argument to be passed to function
+AD4 +- +ACo +AEA-domain: the domain
+AD4 +- +ACo
+AD4 +- +ACo Returns an async+AF8-cookie+AF8-t that may be used for checkpointing later.
+AD4 +- +ACo +AEA-dev is used as both the argument for the function and to provide NUMA
+AD4 +- +ACo context for where to run the function. By doing this we can try to
+AD4 +- +ACo provide for the best possible outcome by operating on the device on the
+AD4 +- +ACo CPUs closest to the device.
+AD4 +- +ACo +AEA-domain may be used in the async+AF8-synchronize+AF8AKgBf-domain() functions to
+AD4 +- +ACo wait within a certain synchronization domain rather than globally. A
+AD4 +- +ACo synchronization domain is specified via +AEA-domain.
+AD4 +- +ACo Note: This function may be called from atomic or non-atomic contexts.
+AD4 +- +ACo-/

Same comment here: I think +ACI-A synchronization domain is specified via +AEA-domain.+ACI
is redundant.

+AD4 +-/+ACoAKg
+AD4 +- +ACo async+AF8-schedule+AF8-node+AF8-domain - NUMA specific version of async+AF8-schedule+AF8-domain
+AD4 +- +ACo +AEA-func: function to execute asynchronously
+AD4 +- +ACo +AEA-data: data pointer to pass to the function
+AD4 +- +ACo +AEA-node: NUMA node that we want to schedule this on or close to
+AD4 +- +ACo +AEA-domain: the domain
+AD4 +- +ACo
+AD4 +- +ACo Returns an async+AF8-cookie+AF8-t that may be used for checkpointing later.
+AD4 +- +ACo +AEA-domain may be used in the async+AF8-synchronize+AF8AKgBf-domain() functions to
+AD4 +- +ACo wait within a certain synchronization domain rather than globally. A
+AD4 +- +ACo synchronization domain is specified via +AEA-domain. Note: This function
+AD4 +- +ACo may be called from atomic or non-atomic contexts.
+AD4 +- +ACo
+AD4 +- +ACo The node requested will be honored on a best effort basis. If the node
+AD4 +- +ACo has no CPUs associated with it then the work is distributed among all
+AD4 +- +ACo available CPUs.
+AD4 +- +ACo-/

Same comment here: I think that also in the above +ACI-A synchronization domain is
specified via +AEA-domain.+ACI is redundant.

Otherwise this patch looks fine to me.

Bart.