Function report |
Source Code:arch\x86\kernel\apic\x2apic_uv_x.c |
Create Date:2022-07-28 08:33:52 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Build GAM range lookup table:
Proto:static __init void build_uv_gr_table(void)
Type:void
Parameter:Nothing
474 | gre = uv_gre_table |
476 | last_limit = 0 , ram_limit = 0 |
479 | If Not gre Then Return |
482 | bytes = _gr_table_len * sizeof(structuv_gam_range_s) |
483 | grt = 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). |
487 | When Entry type: GAM_RANGE_TYPE_UNUSED, etc. != End of table cycle |
488 | If Entry type: GAM_RANGE_TYPE_UNUSED, etc. == Unused address range Then |
489 | If Not ram_limit Then |
497 | pr_info("UV: extra hole in GAM RE table @%d\n", (int)(gre - uv_gre_table)) |
498 | Continue |
500 | If _max_socket < Socket ID, high bits of APIC ID Then |
501 | pr_err("UV: GAM table sockid(%d) too large(>%d) @%d\n", Socket ID, high bits of APIC ID , _max_socket, (int)(gre - uv_gre_table)) |
502 | Continue |
513 | Continue |
518 | If PA bits 56:26 (GAM_RANGE_SHFT) == last_limit Then |
520 | Continue |
524 | If Not ram_limit Then |
525 | grt++ |
529 | Continue |
532 | grt++ |
534 | ry index of node's base addr = grt - _gr_table |
537 | lsid++ |
541 | grt++ |
543 | If i < _gr_table_len Then |
546 | bytes = i * sizeof(structuv_gam_range_s) |
547 | ret = krealloc(_gr_table, bytes, GFP_KERNEL) |
548 | If ret Then |
550 | _gr_table_len = i |
555 | When i < _gr_table_len cycle |
559 | start = If gb < 0 Then 0 Else PA bits 56:26 (GAM_RANGE_SHFT) << 64MB |
560 | end = PA bits 56:26 (GAM_RANGE_SHFT) << 64MB |
Name | Describe |
---|---|
uv_system_init_hub |
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 |