# 完整驱动日志输出
bash-5.1# dmesg | grep -i "npu" | tail -n 20
[38440.786696] [ascend] [devdrv] [ERROR] [dev_mnt_create_vdevice_single 543] <npu-smi:1843738,1843738> create vfid failed, phy_id:0, core_num:1, vfid:1, ret:-1
[38440.786722] [ascend] [devdrv] [ERROR] [devdrv_manager_ioctl_create_vdev 1406] <npu-smi:1843738,1843738> create_vdevice_single fail, devid(0) ret(-22).
[38466.954153] [ascend] [ts_agent] [create_vf_worker 193] <npu-smi:1845216,1845216> create vf worker end, dev_id=0, vf_id=1, ts_id=0, vsq_num=102
[38466.954282] [ascend] [ts_agent] [get_vf_info 35] <npu-smi:1845216,1845216> get vf info end, dev_id=0, vf_id=1, aicore_num=2, vfg_id=0, vf_aicpu_bitmap=6, vfg_aicpu_bitmap=6.
[38466.954368] [ascend] [ts_agent] [send_create_vf_to_ts 148] <npu-smi:1845216,1845216> send create vf to ts success, dev_id=0, ts_id=0, vf_id=1, vfg_id=0, cmd_type=30
[38466.954372] [ascend] [ts_agent] [ts_agent_vf_create 222] <npu-smi:1845216,1845216> create vf worker success, dev_id=0, vf_id=1, vfg_id=0, aic_num=2, vfg_aicpu_bitmap=6.
[38466.954787] [ascend] [vmng_host] [ERROR] [vmngh_vdev_msg_send 98] <npu-smi:1845216> Send message failed. (dev_id=0; vfid=1; ret=0; len=976; error_code=-1)
[38466.954798] [ascend] [vmng_host] [ERROR] [vmngh_init_instance_client_device 1502] <npu-smi:1845216> Send msg failed. (dev_id=0; vfid=1)
[38466.956185] [ascend] [vmng_host] [ERROR] [vmngh_container_client_online_mini_v2 162] <npu-smi:1845216> Init instance all client device failed. (dev_id=0; vfid=1)
[38466.956365] [ascend] [devdrv] [ERROR] [dev_mnt_create_vdevice_single 543] <npu-smi:1845216,1845216> create vfid failed, phy_id:0, core_num:2, vfid:1, ret:-1
[38466.956392] [ascend] [devdrv] [ERROR] [devdrv_manager_ioctl_create_vdev 1406] <npu-smi:1845216,1845216> create_vdevice_single fail, devid(0) ret(-22).
[38649.141530] [ascend] [ts_agent] [create_vf_worker 193] <npu-smi:1854189,1854189> create vf worker end, dev_id=2, vf_id=1, ts_id=0, vsq_num=102
[38649.141667] [ascend] [ts_agent] [get_vf_info 35] <npu-smi:1854189,1854189> get vf info end, dev_id=2, vf_id=1, aicore_num=2, vfg_id=0, vf_aicpu_bitmap=6, vfg_aicpu_bitmap=6.
[38649.141767] [ascend] [ts_agent] [send_create_vf_to_ts 148] <npu-smi:1854189,1854189> send create vf to ts success, dev_id=2, ts_id=0, vf_id=1, vfg_id=0, cmd_type=30
[38649.141772] [ascend] [ts_agent] [ts_agent_vf_create 222] <npu-smi:1854189,1854189> create vf worker success, dev_id=2, vf_id=1, vfg_id=0, aic_num=2, vfg_aicpu_bitmap=6.
[38649.142226] [ascend] [vmng_host] [ERROR] [vmngh_vdev_msg_send 98] <npu-smi:1854189> Send message failed. (dev_id=2; vfid=1; ret=0; len=976; error_code=-1)
[38649.142235] [ascend] [vmng_host] [ERROR] [vmngh_init_instance_client_device 1502] <npu-smi:1854189> Send msg failed. (dev_id=2; vfid=1)
[38649.143569] [ascend] [vmng_host] [ERROR] [vmngh_container_client_online_mini_v2 162] <npu-smi:1854189> Init instance all client device failed. (dev_id=2; vfid=1)
[38649.144115] [ascend] [devdrv] [ERROR] [dev_mnt_create_vdevice_single 543] <npu-smi:1854189,1854189> create vfid failed, phy_id:2, core_num:2, vfid:1, ret:-1
[38649.144142] [ascend] [devdrv] [ERROR] [devdrv_manager_ioctl_create_vdev 1406] <npu-smi:1854189,1854189> create_vdevice_single fail, devid(1) ret(-22).
【问题描述】 在 ARM64 + OpenEuler 环境下,使用 Ascend 310P1 推理卡尝试切分 vNPU 失败。 尽管已经在 OS 层面开启了 HugePages 并且配置了
iommu.passthrough=1,但npu-smi info中显示的Hugepages-Usage分母始终为 0,且驱动日志报错ret(-22)。【环境信息】
硬件型号:Ascend 310P1 (NPU ID 0 和 32)
CPU 架构:Aarch64 (Phytium 飞腾)
操作系统:OpenEuler 22.03 LTS (Kernel 5.10.0-136.108.0.188.oe2203sp1.aarch64)
NPU 驱动/固件版本:24.1.t35
容器环境:操作均在宿主机 Root 下执行,确认未在 Docker 内。
【操作步骤与报错】
确认设备空闲(无进程占用)。
执行切分命令:
Bashbash-5.1# npu-smi set -t vnpu-mode -d 0 Status : OK Message : Set vnpu docker mode success bash-5.1# npu-smi set -t create-vnpu -i 32 -c 0 -f vir02 create vnpu failed.【关键日志信息】
1. dmesg 驱动报错日志: 系统日志显示创建虚拟设备时参数无效 (
ret(-22)-> EINVAL),且无法发送消息给设备管理。2. npu-smi info 状态异常:
Hugepages-Usage(page)显示为0 / 0,是否说明驱动未识别到大页内存。【已尝试的排查方案】
开启大页内存与 SMMU 直通: 已修改
/etc/default/grub并重新生成引导文件(grub2-mkconfig),已重启生效。cat /proc/cmdline输出确认参数已加载:验证 OS 层面大页已开启:
grep Huge /proc/meminfo显示系统已预留内存:排除占用: 使用
fuser -v /dev/davinci*和lsof确认无任何业务进程占用 NPU。