问题描述
我使用‘/dev/nvme1’作为我的数据路径,现在我想告诉 SSD 我不再需要 [offset,len],是否有 posix API 来做到这一点?向 SSD FTL 发送修剪命令。
解决方法
经过一番研究,我在这里找到了一段代码:
int block_device_discard(int fd,int64_t offset,int64_t len)
{
uint64_t range[2] = {(uint64_t)offset,(uint64_t)len};
int ret = ioctl(fd,BLKSECDISCARD,range);
if (ret < 0) {
return errno;
}
return 0;
}
请注意,如果您的设备不支持 BLKSECDISCARD
,该命令将返回错误。
不确定是否有效,稍后更新结果。
参考文献: