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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions