Hi,i have some questions about zns mode.
I noticed in zns.c, every zone (structure NvmeZone) has its own writepointer: zone->w_ptr
|
static uint16_t zns_nvme_rw(FemuCtrl *n, NvmeNamespace *ns, NvmeCmd *cmd, |
but there is no delay emulation in any operation.
in zftl.c,there is another function of advancing wp :zns_advance_write_pointer, and delay emulation is in zftl.c,
|
static void zns_advance_write_pointer(struct zns_ssd *zns) |
but it seems like there is only one wp of whole ssd.
it seems like the granularity of mapping table is page, but one of the contributions of zns is its coarse-grained mapping table,is this reasonable?
|
static inline struct ppa get_maptbl_ent(struct zns_ssd *zns, uint64_t lpn) |
In summary,my questions are as follows:
1.why not emulate delay in zns.c but in zftl.c?
2. why there is only one wp in zftl.c?
3. is page-level mapping table reasonable?
Looking forward to your reply,thanks! @huaicheng
Hi,i have some questions about zns mode.
I noticed in zns.c, every zone (structure NvmeZone) has its own writepointer: zone->w_ptr
FEMU/hw/femu/zns/zns.c
Line 834 in 1c2d358
but there is no delay emulation in any operation.
in zftl.c,there is another function of advancing wp :zns_advance_write_pointer, and delay emulation is in zftl.c,
FEMU/hw/femu/zns/zftl.c
Line 54 in 1c2d358
but it seems like there is only one wp of whole ssd.
it seems like the granularity of mapping table is page, but one of the contributions of zns is its coarse-grained mapping table,is this reasonable?
FEMU/hw/femu/zns/zftl.c
Line 7 in 1c2d358
In summary,my questions are as follows:
1.why not emulate delay in zns.c but in zftl.c?
2. why there is only one wp in zftl.c?
3. is page-level mapping table reasonable?
Looking forward to your reply,thanks! @huaicheng