FEMU icon indicating copy to clipboard operation
FEMU copied to clipboard

How can i add a OS-SSD NVME command?

Open chillsoul opened this issue 1 year ago • 3 comments

Sorry for this quite simple question, I'm a newbie for Linux Kernel Develop and SSD research, I see

Extensible OS-SSD NVMe commands

in your paper, but idk how to implement it.

Does it mean that I should change NVMe driver and FEMU? Can you please tell me where can I modify in FEMU?

Thank you very much.

By the way, your ASPLOS'23 CXL Paper is also very good.

chillsoul avatar Jun 20 '23 07:06 chillsoul

To extend the NVMe command set, if it's an admin cmd, check https://github.com/vtess/FEMU/blob/master/hw/femu/nvme-admin.c#L1029. Yes, you need to define your new NVMe command and implement the processing logics for both the software (e.g., NVMe driver) and FEMU.

huaicheng avatar Jun 29 '23 18:06 huaicheng

I have some new question now.

When i run FEMU, there is two disk (qemu image's and BBSSD's), I want to know the LBA of a file in BBSSD to do something with BBSSD FTL.

If i use FIEMAP ioctl, it will print a filesystem logical address (FS LBA). And after that i found the FS LBA is not the LBA in BBSSD.I think it's because the two disk shared the filesystem logical address space (e.g. 0~100 for qemu image, 101~150 for BBSSD,if the file's FS LBA is 101,in fact the device LBA is 1).

Is there a easy way to get the true device LBA of a file? @huaicheng

Here is the detail: https://stackoverflow.com/questions/76762319/how-to-get-the-start-logical-address-of-a-block-device-partition.

chillsoul avatar Jul 26 '23 08:07 chillsoul

If your file system is mounted on FEMU BBSSD, it owns the entire LBA space.

It seems filefrag is reporting offsets in blocks of 4096 bytes, by default, FEMU BBSSD is using 512 block sizes. You might need to do the conversion here by yourself.

huaicheng avatar Jul 27 '23 05:07 huaicheng