Skip to content

I/O latency를 모델링 하는 프로그램의 작성 #10

@BlaCkinkGJ

Description

@BlaCkinkGJ

NVMeVirt의 KVSSD 구현은 2가지 루틴으로 구성되어 있습니다.

첫번째 루틴은 I/O를 직접적으로 HashMap에 저장하는 루틴으로 이 부분은 우리가 건드릴 필요가 없을 것으로 생각됩니다.

하지만 두번째 루틴인 I/O 지연시간 모델링이 이루어지는 부분에 대해서 우리가 직접적으로 건드려야 할 것으로 생각됩니다.

따라서 저희가 해야할 일은 Delay 모델링 하는 부분만 분석해서 그 부분에서 나만의 지연시간을 만들어내는 코드를 보세요.

https://github.com/snu-csl/nvmevirt/blob/main/kv_ftl.c#L60 => 지연시간이 실제 발생하는 부분
https://github.com/snu-csl/nvmevirt/blob/main/kv_ftl.c#L966 => I/O cmd를 받는 부분

kv_proc_nvme_io_cmd에서 커맨드가 처리되는 순서를 내 마음대로 변경을 해봅시다.

전역 큐를 만들고 전역큐에서 순서를 뒤죽박죽으로 만들어서 처리가 되도록 한다.

그 상태에서 kvbench를 돌려서 성능이 바뀌는지를 확인해본다.

nsecs_target 값을 설정하는 과정이라고 보면 됩니다.

Image

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions