函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\apic\x2apic_uv_x.c Create Date:2022-07-27 09:33:02
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Build GAM range lookup table:

函数原型:static __init void build_uv_gr_table(void)

返回类型:void

参数:

474  gre等于uv_gre_table
476  last_limit等于0, ram_limit等于0
477  lsid等于负1, indx等于0, lindx等于负1
479  如果非gre则返回
482  bytes等于_gr_table_lensizeof(structuv_gam_range_s)
483  grt等于分配内存并置零
484  BUG_ON(!grt)
485  _gr_table等于grt
487  Entry type: GAM_RANGE_TYPE_UNUSED, etc. 不等于End of table 循环
489  如果非ram_limit
491  ram_limit等于last_limit
493  lsid自加
494  继续下一循环
497  打印信息("UV: extra hole in GAM RE table @%d\n", (int)(gre - uv_gre_table))
498  继续下一循环
501  打印错误信息("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  继续下一循环
504  sid等于 Socket ID, high bits of APIC ID _min_socket
505  如果lsid小于sid
507  grt等于_gr_table[indx]
511  lsid等于sid
512  lindx等于indx自加
513  继续下一循环
516  如果lsid恒等于sid且非ram_limit
524  如果非ram_limit
525  grt自加
529  继续下一循环
532  grt自加
534  ry index of node's base addr 等于grt_gr_table
535  de's global physical address 等于 HNasid
536  PA bits 56:26 (GAM_RANGE_SHFT) 等于last_limit等于 PA bits 56:26 (UV_GAM_RANGE_SHFT)
537  lsid自加
541  grt自加
542  i等于grt_gr_table
543  如果i小于_gr_table_len
546  bytes等于isizeof(structuv_gam_range_s)
547  ret等于krealloc(_gr_table, bytes, GFP_KERNEL)
548  如果ret
549  _gr_table等于ret
550  _gr_table_len等于i
555 i小于_gr_table_len循环
557  gb等于ry index of node's base addr
559  start等于如果gb小于0则0否则PA bits 56:26 (GAM_RANGE_SHFT) 左移64MB
560  end等于PA bits 56:26 (GAM_RANGE_SHFT) 左移64MB
562  打印信息("UV: GAM Range %2d %04x 0x%013lx-0x%013lx (%d)\n", i, de's global physical address , start, end, gb)
调用者
名称描述
uv_system_init_hub