lkml.org 
[lkml]   [2019]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 6/9] sh: numa: check the node id consistently for sh
    Date
    According to Section 6.2.14 from ACPI spec 6.3 [1], the setting
    of proximity domain is optional, as below:

    This optional object is used to describe proximity domain
    associations within a machine. _PXM evaluates to an integer
    that identifies a device as belonging to a Proximity Domain
    defined in the System Resource Affinity Table (SRAT).

    It seems sh does not have real numa support or uncompleted
    numa support, this patch still checks node id with the below
    case to ensure future support is consistent:
    1. if node_id >= nr_node_ids, return cpu_none_mask
    2. if node_id < 0, return cpu_online_mask
    3. if node_to_cpumask_map[node_id] is NULL, return cpu_online_mask

    [1] https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf

    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    ---
    arch/sh/include/asm/topology.h | 14 +++++++++++++-
    1 file changed, 13 insertions(+), 1 deletion(-)

    diff --git a/arch/sh/include/asm/topology.h b/arch/sh/include/asm/topology.h
    index 1db470e..e71e0a0 100644
    --- a/arch/sh/include/asm/topology.h
    +++ b/arch/sh/include/asm/topology.h
    @@ -6,7 +6,19 @@

    #define cpu_to_node(cpu) ((void)(cpu),0)

    -#define cpumask_of_node(node) ((void)node, cpu_online_mask)
    +static inline const struct cpumask *cpumask_of_node(int node)
    +{
    + if (node >= nr_node_ids)
    + return cpu_none_mask;
    +
    + if (node < 0 || !node_to_cpumask_map[node])
    + return cpu_online_mask;
    +
    + /* Should return actual mask based on node_to_cpumask_map
    + * if sh arch supports real numa node.
    + */
    + return cpu_online_mask;
    +}

    #define pcibus_to_node(bus) ((void)(bus), -1)
    #define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
    --
    2.8.1
    \
     
     \ /
      Last update: 2019-08-31 08:02    [W:2.833 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site