Function report |
Source Code:arch\x86\kernel\apic\x2apic_uv_x.c |
Create Date:2022-07-28 08:34:44 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:uv_system_init_hub
Proto:static void __init uv_system_init_hub(void)
Type:void
Parameter:Nothing
1555 | struct uv_hub_info_s hub_info = {0} |
1558 | char * hub = is_uv4_hub() ? "UV400" : is_uv3_hub() ? "UV300" : is_uv2_hub() ? "UV2000/3000" : WARNING: UVx_HUB_IS_SUPPORTED defines are deprecated and will be removed ? "UV100/1000" : NULL |
1563 | If Not hub Then |
1564 | pr_err("UV: Unknown/unsupported UV hub\n") |
1565 | Return |
1569 | map_low_mmrs() |
1572 | uv_bios_init() |
1575 | If decode_uv_systab() < 0 Then Return |
1578 | build_socket_tables() |
1580 | set_block_size() |
1581 | uv_init_hub_info( & hub_info) |
1582 | uv_possible_blades = num_possible_nodes() |
1587 | pr_info("UV: Found %d hubs, %d nodes, %d CPUs\n", uv_num_possible_blades(), num_possible_nodes(), num_possible_cpus()) |
1589 | uv_bios_get_sn_info(0, & uv_type, & sn_partition_id, & sn_coherency_id, & sn_region_size, & system_serial_number) |
1591 | uv_rtc_init() |
1593 | bytes = size of * * uv_num_possible_blades() |
1594 | __uv_hub_info_list = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc). |
1595 | BUG_ON(!__uv_hub_info_list) |
1597 | bytes = sizeof(structuv_hub_info_s) |
1598 | for_each_node(nodeid) |
1601 | If __uv_hub_info_list[nodeid] Then |
1609 | __uv_hub_info_list[nodeid] = new_hub |
1610 | new_hub = uv_hub_info_list(nodeid) |
1615 | If The following values are used for the per node hub info struct Then pnode = The following values are used for the per node hub info struct [nodeid] |
1617 | Else pnode = 0xffff |
1621 | memory_nid = NUMA_NO_NODE |
1622 | nr_possible_cpus = 0 |
1623 | nr_online_cpus = 0 |
1627 | for_each_possible_cpu(cpu) |
1632 | nodeid = cpu_to_node(cpu) |
1633 | numa_node_id = numa_cpu_node(cpu) |
1636 | ( & ( * ({ |
1636 | })))->p_uv_hub_info = uv_hub_info_list(nodeid) |
1637 | ( & ( * ({ |
1637 | })))->blade_cpu_id = uv_cpu_hub_info(cpu)->nr_possible_cpus++ |
1638 | If memory_nid == NUMA_NO_NODE Then memory_nid = cpu_to_node(cpu) |
1642 | If nodeid != numa_node_id && pnode == 0xffff Then pnode = pnode |
1648 | ( & ( & ( * ({ |
1648 | })))->scir)->offset = uv_scir_offset(apicid) |
1651 | for_each_node(nodeid) |
1655 | If pnode == 0xffff Then |
1662 | min_pnode = min - return minimum of two values of the same or compatible types*@x: first value*@y: second value(pnode, min_pnode) |
1663 | max_pnode = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(pnode, max_pnode) |
1664 | pr_info("UV: UVHUB node:%2d pn:%02x nrcpus:%d\n", nodeid, pnode, nr_possible_cpus) |
1671 | map_gru_high(max_pnode) |
1672 | map_mmr_high(max_pnode) |
1673 | map_mmioh_high(min_pnode, max_pnode) |
1675 | Per Hub NMI support |
1678 | uv_setup_proc_files(0) |
Name | Describe |
---|---|
uv_system_init | There is a different code path needed to initialize a UV system that does* not have a "UV HUB" (referred to as "hubless"). |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |