Fio 도구입출력 성능 테스트
ignore_error=str
Sometimes you want to ignore some errors during test in that case you can specify error list for each error type.
ignore_error=READ_ERR_LIST,WRITE_ERR_LIST,VERIFY_ERR_LIST
errors for given error type is separated with ':'. Error may be symbol ('ENOSPC', 'ENOMEM') or an integer.
Example: ignore_error=EAGAIN,ENOSPC:122 .
This option will ignore EAGAIN from READ, and ENOSPC and 122(EDQUOT) from WRITE.
, ,verify : 。 OS Error
{
.name = "ignore_error",
.type = FIO_OPT_STR,
.cb = str_ignore_error_cb,
.off1 = td_var_offset(ignore_error_nr),
.help = "Set a specific list of errors to ignore",
.parent = "rw",
.category = FIO_OPT_C_GENERAL,
.group = FIO_OPT_G_ERR,
}
continue_on_error=verify, error가 나타나면 무시하고 테스트를 계속합니다.
{
.name = "continue_on_error",
.lname = "Continue on error",
.type = FIO_OPT_STR,
.off1 = td_var_offset(continue_on_error),
.help = "Continue on non-fatal errors during IO",
.def = "none",
.category = FIO_OPT_C_GENERAL,
.group = FIO_OPT_G_ERR,
.posval = {
{ .ival = "none",
.oval = ERROR_TYPE_NONE,
.help = "Exit when an error is encountered",
},
{ .ival = "read",
.oval = ERROR_TYPE_READ,
.help = "Continue on read errors only",
},
{ .ival = "write",
.oval = ERROR_TYPE_WRITE,
.help = "Continue on write errors only",
},
{ .ival = "io",
.oval = ERROR_TYPE_READ | ERROR_TYPE_WRITE,
.help = "Continue on any IO errors",
},
{ .ival = "verify",
.oval = ERROR_TYPE_VERIFY,
.help = "Continue on verify errors only",
},
{ .ival = "all",
.oval = ERROR_TYPE_ANY,
.help = "Continue on all io and verify errors",
},
{ .ival = "0",
.oval = ERROR_TYPE_NONE,
.help = "Alias for 'none'",
},
{ .ival = "1",
.oval = ERROR_TYPE_ANY,
.help = "Alias for 'all'",
},
},
}
FIo 데이터 일관성 확인은 모든 데이터가 채워져야 합니다. 그렇지 않으면 검증에 실패합니다.
struct verify_header {
uint16_t magic;
uint16_t verify_type;
uint32_t len;
uint64_t rand_seed;
uint32_t crc32;
};
static int verify_header(struct io_u *io_u, struct verify_header *hdr,
unsigned int hdr_num, unsigned int hdr_len);
verify_header()
check verify_헤더의 매직 일치 여부; #define FIO_HDR_MAGIC0xacca;
check len 및 hdr렌은 같아야 돼.
hdr->rand_seed 및 iou->rand_seed는 동일해야 합니다.
hdr의 내용에 따라 crc를 다시 계산하여 hdr->crc32와 일치하는지 확인합니다.
crc = fio_crc32c(p, offsetof(struct verify_header, crc32));
/**/
crc = fio_crc32c(p, ((size_t) &((struct verify_header *)0)->crc32));
일치하는 경우 헤더 검사가 성공했습니다.
static void populate_hdr(struct thread_data *td, struct io_u *io_u,
struct verify_header *hdr, unsigned int header_num,
unsigned int header_len)
hdr의 각 구성원에 값을 부여합니다.
data_len = header_len - hdr_size(hdr);
/*The function do fill the verify data(verify_header + crc32) at the address 'struct verify_header *hdr'*/
static void fill_pattern_headers(struct thread_data *td, struct io_u *io_u,
unsigned long seed, int use_seed)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.