Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JD

当使用新版本IDEA运行SpringBoot应用时,可能会遇到Java HotSpot VM关于-Xverify:none和-noverify选项的警告。此警告源于这些选项在JDK13中被弃用,并可能在未来的版本中移除。解决这个问题的步骤是通过修改项目的JVM参数,取消这两个选项。具体操作包括进入IDEA的配置设置,找到项目的VM选项,并删除与之相关的内容,然后保存设置,重启应用即可消除警告。

springboot运行启动时,出现“Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.”的解决方案。(新版本idea)

步骤:

点击:

 

 

 OK

 

 

 

你提到的函数调用: ```c vnet_crypto_process_ops(vm, op, n_ops); ``` 这是 **VPP(Vector Packet Processing)** 中用于处理加密操作的核心接口之一。我们来详细解析这个函数的作用、参数含义、使用场景以及底层原理。 --- ## ✅ 一、函数原型与所属框架 该函数属于 **VPP 的加密子系统(crypto module)**,其作用是: > **提交一批加密/解密操作给 VPP 加密引擎进行处理** ### 函数签名(简化版): ```c clib_error_t *vnet_crypto_process_ops(vlib_main_t *vm, vnet_crypto_op_t *ops[], u32 n_ops); ``` --- ## 🔍 二、参数详解 | 参数 | 类型 | 含义 | |------|------|------| | `vm` | `vlib_main_t *` | VPP 的主执行上下文(每线程一个),管理节点、缓冲区、调度等 | | `op` | `vnet_crypto_op_t *[]` | 指向一组加密操作的数组(每个元素是一个操作) | | `n_ops` | `u32` | 数组中待处理的操作数量 | --- ### 🧩 1. `vm` —— VPP 主上下文(vlib_main- 是 VPP 线程本地的运行时环境 - 包含内存池、缓冲区管理器、计数器、节点图等 - 所有 VPP 处理函数都需要它作为上下文 📌 相当于“当前线程的 VPP 引擎实例” --- ### 🧩 2. `op` —— 加密操作数组 这是一个 **指针数组**,每个元素指向一个 `vnet_crypto_op_t` 结构体,表示一个加密或解密请求。 #### 示例结构体定义(简化): ```c typedef struct { vnet_crypto_op_type_t type; // 如 AES-CBC + SHA1-HMAC vnet_crypto_key_index_t key_index; // 密钥索引 u32 iv[4]; // 初始化向量(IV) u8 *data_to_crypt; // 待加密/解密的数据起始地址 u32 len_to_crypt; // 数据长度(字节) u8 *aad; // 额外认证数据(如 IP/UDP 头) u32 aad_len; u8 *auth_result; // 输出:HMAC 结果存放位置 u32 auth_len; vnet_crypto_status_t status; // 返回状态:成功/失败 } vnet_crypto_op_t; ``` > ⚠️ 实际上在 VPP 中,`vnet_crypto_op_t` 是一个 pool 中分配的对象,常配合 `vnet_crypto_op_alloc()` 和 `free` 使用。 --- ### 🧩 3. `n_ops` —— 操作个数 - 表示你要提交多少个加密操作 - 典型值:1 ~ 数百(批量处理提升性能) - VPP 会遍历这 `n_ops` 个操作,尝试并行加速(如使用 SIMD、硬件加速) --- ## ✅ 三、典型使用流程 ```c // 1. 分配一批操作对象 vnet_crypto_op_t *ops[VLIB_FRAME_SIZE]; u32 n_ops = 0; // 假设有多个 packet 需要加密 foreach_packet(p) { vnet_crypto_op_t *op; vnet_crypto_op_alloc(&op); // 从 pool 分配 op->type = VNET_CRYPTO_OP_TYPE_AES_128_CBC_HMAC_SHA1_96; op->key_index = sa->crypto_key_index; clib_memcpy(op->iv, p->iv, 16); op->data_to_crypt = p->payload; op->len_to_crypt = p->payload_len; op->aad = p->aad; // 如 ESP 头前的部分 op->aad_len = p->aad_len; op->auth_result = p->hmac_offset; ops[n_ops++] = op; } // 2. 提交给加密引擎处理 clib_error_t *err = vnet_crypto_process_ops(vm, ops, n_ops); // 3. 检查结果 for (int i = 0; i < n_ops; i++) { if (ops[i]->status != VNET_CRYPTO_OP_STATUS_SUCCESS) { drop_packet(); } else { continue_processing_packet(); } vnet_crypto_op_free(ops + i); // 释放操作对象 } ``` --- ## 🚀 四、背后发生了什么? 当你调用 `vnet_crypto_process_ops` 时,VPP 会做以下事情: 1. **查找支持的后端引擎(Backend)** - 软件实现(OpenSSL、BoringSSL、built-in AES) - 硬件加速(Intel QuickAssist, DPDK crypto, ARM CryptoCell) 2. **按类型分发操作** - 把 AES-CBC、AES-GCM、SHA1-HMAC 等不同算法的操作分类 3. **批量提交给最优引擎** - 利用 SIMD 指令(如 AVX2、NEON)并行处理多个包 - 或通过 DMA 提交给硬件加密卡 4. **回填状态和结果** - 设置 `op->status` - 写入生成的 HMAC 或 IV 5. **返回错误码(一般为 NULL 表示无全局错误)** --- ## 📈 五、为什么设计成“批量处理”? - **减少函数调用开销** - **提高 CPU 缓存命中率** - **便于启用 SIMD 并行计算** - **适配硬件加密设备的 batch 接口** 👉 性能对比:处理 1000 个包时,批量调用比逐个调用快 3~10 倍! --- ## ✅ 六、常见应用场景 | 场景 | 是否使用此函数 | |------|----------------| | IPSec ESP 加密/解密 | ✅ 是核心入口 | | TLS 卸载(TLS offload) | ✅ 可扩展支持 | | MACsec | ✅ 支持 | | QUIC AEAD 加密 | ✅ 可封装为 crypto op | | 自定义加密协议 | ✅ 插件化支持 | --- ## ⚠️ 七、注意事项 | 项目 | 说明 | |------|------| | ❗ 必须先初始化 crypto 模块 | `vnet_crypto_init()` | | ❗ 密钥需预先注册 | 使用 `vnet_crypto_register_key()` | | ❗ 操作必须正确设置字段 | 特别是 `len_to_crypt`, `aad`, `iv` | | ❗ 不要越界访问内存 | VPP 对性能敏感,不检查边界 | | ❗ 异步处理?目前是同步阻塞调用 | 但内部可并行 | --- ## ✅ 八、总结 | 问题 | 回答 | |------|------| | `vnet_crypto_process_ops` 是干什么的? | 提交一批加密操作给 VPP 加密引擎处理 | | `vm` 是什么? | 当前线程的 VPP 运行上下文 | | `op` 是什么? | 加密操作数组,每个包含算法、数据、密钥
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值