Как разрешить разногласия по поводу версии символов?Linux

Ответить
Anonymous
 Как разрешить разногласия по поводу версии символов?

Сообщение Anonymous »

Работаю над модулем ядра, после insmod в dmesg появились такие ошибки:

Код: Выделить всё

[ 5839.116224] mcswap: disagrees about version of symbol rdma_leave_multicast
[ 5839.116234] mcswap: Unknown symbol rdma_leave_multicast (err -22)
[ 5839.116293] mcswap: disagrees about version of symbol __ib_alloc_pd
[ 5839.116296] mcswap: Unknown symbol __ib_alloc_pd (err -22)
[ 5839.116314] mcswap: disagrees about version of symbol rdma_resolve_addr
[ 5839.116317] mcswap: Unknown symbol rdma_resolve_addr (err -22)                                                   [ 5839.116360] mcswap: disagrees about version of symbol ib_process_cq_direct
[ 5839.116364] mcswap: Unknown symbol ib_process_cq_direct (err -22)
[ 5839.116383] mcswap: disagrees about version of symbol ib_event_msg
[ 5839.116386] mcswap: Unknown symbol ib_event_msg (err -22)
[ 5839.116423] mcswap: disagrees about version of symbol rdma_create_ah
[ 5839.116426] mcswap: Unknown symbol rdma_create_ah (err -22)
[ 5839.116459] mcswap: disagrees about version of symbol __rdma_create_kernel_id
[ 5839.116462] mcswap: Unknown symbol __rdma_create_kernel_id (err -22)
[ 5839.116477] mcswap: disagrees about version of symbol rdma_resolve_route
[ 5839.116479] mcswap: Unknown symbol rdma_resolve_route (err -22)                                                  [ 5839.116488] mcswap: disagrees about version of symbol rdma_bind_addr
[ 5839.116490] mcswap: Unknown symbol rdma_bind_addr (err -22)
[ 5839.116504] mcswap: disagrees about version of symbol rdma_create_qp
[ 5839.116507] mcswap: Unknown symbol rdma_create_qp (err -22)
[ 5839.116529] mcswap: disagrees about version of symbol ib_query_port
[ 5839.116532] mcswap: Unknown symbol ib_query_port (err -22)
[ 5839.116548] mcswap: disagrees about version of symbol __ib_alloc_cq
[ 5839.116551] mcswap: Unknown symbol __ib_alloc_cq (err -22)
[ 5839.116571] mcswap: disagrees about version of symbol rdma_destroy_qp
[ 5839.116573] mcswap: Unknown symbol rdma_destroy_qp (err -22)                                                     [ 5839.116596] mcswap: disagrees about version of symbol rdma_destroy_ah_user
[ 5839.116598] mcswap: Unknown symbol rdma_destroy_ah_user (err -22)
[ 5839.116614] mcswap: disagrees about version of symbol ib_destroy_cq_user
[ 5839.116616] mcswap: Unknown symbol ib_destroy_cq_user (err -22)                                                  [ 5839.116624] mcswap: disagrees about version of symbol rdma_connect                                               [ 5839.116626] mcswap: Unknown symbol rdma_connect (err -22)                                                        [ 5839.116641] mcswap: disagrees about version of symbol ib_wc_status_msg                                           [ 5839.116643] mcswap: Unknown symbol ib_wc_status_msg (err -22)                                                    [ 5839.116659] mcswap: disagrees about version of symbol ib_free_cq                                                 [ 5839.116662] mcswap: Unknown symbol ib_free_cq (err -22)                                                          [ 5839.116668] mcswap: disagrees about version of symbol rdma_destroy_id                                            [ 5839.116671] mcswap: Unknown symbol rdma_destroy_id (err -22)                                                     [ 5839.116684] mcswap: disagrees about version of symbol rdma_join_multicast                                        [ 5839.116686] mcswap: Unknown symbol rdma_join_multicast (err -22)
[ 5839.116704] mcswap: disagrees about version of symbol ib_dealloc_pd_user
[ 5839.116707] mcswap: Unknown symbol ib_dealloc_pd_user (err -22)
Я компилирую модуль:

Код: Выделить всё

EXTRA_CFLAGS += -D_GNU_SOURCE
KDIR ?= /lib/modules/$(shell uname -r)/build
obj-m := mcswap.o

all:
$(info EXTRA_CFLAGS = $(EXTRA_CFLAGS))
make -C $(KDIR) M=$(shell pwd) modules

clean:
make -C $(KDIR) M=$(shell pwd) clean
Информация о моде модуля mcswap.ko:

Код: Выделить всё

filename:       /home/shufan/swapmon_fs/mcswap.ko
license:        GPL v2
version:        1.1.0
description:    Low latency and memory efficient paging over RDMA
srcversion:     6298CBD0C14DEC4EE9BC7AF
depends:        rdma_cm,ib_core
retpoline:      Y
name:           mcswap
vermagic:       5.15.0-127-generic SMP mod_unload modversions
parm:           endpoint:IP address and port number of memoryservers in n.n.n.n:n form (array of charp)
parm:           sport:int
parm:           server_port:Port number that memory servers are listening on
parm:           cip:string
parm:            client_ip:IP address in n.n.n.n form of the interface usedfor communicating with the memory servers
parm:           enable_async_mode:Enable asynchronous stores/loads but requires appropriate kernel patch (default=0) (int)
parm:           enable_poll_mode:int
Uname -r возвращает 5.15.0-127-generic, а vermagic, похоже, подчиняется uname -r.
Думаю, это связано с вермагией mcswap.ko и модулями, от которых она зависит. Итак, я проверил rdma_cm и ib_core.
modinfo rdma_cm

Код: Выделить всё

filename:       /lib/modules/5.15.0-127-generic/updates/dkms/rdma_cm.ko
license:        Dual BSD/GPL
description:    Generic RDMA CM Agent
author:         Sean Hefty
srcversion:     E96BA00E51632F4FDED1980
depends:        ib_core,ib_cm,iw_cm,mlx_compat
retpoline:      Y
name:           rdma_cm
vermagic:       5.15.0-127-generic SMP mod_unload modversions
sig_id:         PKCS#7
signer:         oem Secure Boot Module Signature key
sig_key:        62:A8:41:71:C1:0E:23:88:D2:17:B3:9C:FD:B8:CE:F8:49:6D:6F:58
sig_hashalgo:   sha512
signature:      6F:0A:E5:98:79:70:DC:A5:F2:1F:89:97:A6:ED:4E:33:2C:4D:BB:37:
95:57:F5:B7:2D:51:26:C2:FB:4E:39:94:92:AA:14:3B:25:99:13:36:
78:10:B4:A0:E4:E8:00:D5:BD:B4:1F:D8:15:DA:3F:8C:EF:5A:7A:E5:
E2:2A:0C:99:A0:9F:EB:B5:21:4E:58:8B:8D:3A:B7:CB:9B:8B:B9:04:
BC:3A:0F:8C:D8:9C:55:CF:1E:4D:1C:69:A7:34:85:05:16:3E:3D:AB:
4E:1B:8D:C3:B9:3A:B7:CD:98:A3:01:FB:37:AB:49:11:A8:37:18:7A:
AF:34:D9:D7:20:D2:AE:7C:8D:41:CF:A5:9F:CB:E4:93:53:A6:7A:97:
FB:E0:BC:E2:9B:CF:77:2A:22:B5:18:CB:8C:30:88:E0:71:DA:51:21:
F4:7F:51:D6:AD:E7:D1:16:46:45:04:A8:E5:84:2E:90:F4:D1:FE:1C:
04:AD:F8:76:9A:4F:B2:5A:1D:C3:B6:BD:96:34:A3:B8:6F:ED:B4:75:
1B:B4:FE:58:1E:F0:47:F4:32:84:DD:51:D1:6F:AA:65:DE:B8:8E:FB:
BF:B4:70:22:65:E3:5C:A4:F0:AD:46:98:CF:F8:A1:74:46:90:E5:EF:
CE:64:E6:86:8B:F0:FE:29:7F:E2:C1:2E:B5:1E:76:34
модификация ib_core

Код: Выделить всё

filename:       /lib/modules/5.15.0-127-generic/updates/dkms/ib_core.ko
alias:          rdma-netlink-subsys-4
license:        Dual BSD/GPL
description:    core kernel InfiniBand API
author:         Roland Dreier
alias:          net-pf-16-proto-20
alias:          rdma-netlink-subsys-5
import_ns:      DMA_BUF
srcversion:     FEC99D33844FCB00B111381
depends:        mlx_compat
retpoline:      Y
name:           ib_core
vermagic:       5.15.0-127-generic SMP mod_unload modversions
sig_id:         PKCS#7
signer:         oem Secure Boot Module Signature key
sig_key:        62:A8:41:71:C1:0E:23:88:D2:17:B3:9C:FD:B8:CE:F8:49:6D:6F:58
sig_hashalgo:   sha512
signature:      B2:18:9E:D0:D5:F9:ED:2F:A9:85:38:CF:C2:45:1D:E3:9C:71:D1:A8:
72:73:B5:40:C5:53:C5:5D:B3:9C:A9:8B:56:50:D3:64:14:C9:27:0D:
64:6C:45:4A:5A:5E:6D:BC:28:82:F1:A5:02:BC:61:44:8E:0C:6D:46:
B0:A4:3E:84:1B:EC:78:0F:FB:2A:B2:8A:CC:4D:CC:48:C7:CC:87:77:
74:39:FC:3A:BC:F9:D6:81:D1:81:A7:3D:0F:C0:7F:07:6C:4C:35:82:
2B:45:7D:05:41:EF:85:2F:11:E6:40:91:9E:DE:D4:6D:A0:D2:8B:CF:
71:27:7F:A7:D4:BD:65:3F:DB:05:6F:97:28:C3:3C:8E:16:CC:5F:00:
FB:0D:33:8B:11:BF:70:07:8B:42:DE:EC:49:14:E3:C8:B9:95:79:60:
F2:6F:35:89:4B:5D:61:AF:20:CA:B0:80:26:71:E0:DF:1A:10:CC:BB:
57:41:2D:F2:6A:59:8F:AD:01:26:13:E6:AD:59:EA:52:82:7E:05:B9:
12:8C:37:C4:AD:03:73:97:DE:BA:E8:38:5B:83:A8:38:36:AD:D6:07:
D8:96:7B:55:92:ED:4A:00:BB:09:C9:D6:62:24:A6:6A:D1:08:29:1E:
AB:A3:55:E5:76:4D:74:00:7B:88:AF:65:E3:4A:2B:B8
parm:           send_queue_size:Size of send queue in number of work requests (int)
parm:           recv_queue_size:Size of receive queue in number of work requests (int)
parm:           mad_smp_window:Maximun number of outgoing SMP requests (int)
parm:           netns_mode:Share device among net namespaces; default=1 (shared) (bool)
parm:           force_mr:Force usage of MRs for RDMA READ/WRITE operations (bool)
Верматика этих трех модулей одинакова, поэтому я не знаю, является ли это причиной проблемы.
Я проверил Не согласен с версией символа имя_символа после insmod для ответов, но проблему я не решил. Это покажет мне способ проверить Module.symvers. Однако /home/shufan/swapmon_fs/Module.symvers пуст. Поэтому я проверил /usr/src.

Код: Выделить всё

# inside /usr/src/linux-headers-5.15.0-127-generic/Module.symvers
0xbb93cce9  ib_free_cq  drivers/infiniband/core/ib_core EXPORT_SYMBOL

# inside /usr/src/ofa_kernel/x86_64/5.15.0-127-generic/Module.symvers
0x4d53afee  ib_free_cq  /var/lib/dkms/mlnx-ofed-kernel/23.10.OFED.23.10.1.1.9.1/build/drivers/infiniband/core/ib_core   EXPORT_SYMBOL
Я не знаю, является ли это причиной разногласий по поводу версии символа. Почему modinfo ib_core показывает, что имя файла — это имя файла: /lib/modules/5.15.0-127-generic/updates/dkms/ib_core.ko, а у двух Module.symvers есть еще два пути к файлам? Это основная причина моей проблемы? Спасибо большое за помощь!

Подробнее здесь: https://stackoverflow.com/questions/793 ... of-symbols
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»