bigsys-gnu / mvcc-os

KhronOS, a scalable operating systems based on sv6 (MIT) with MV-RLU (multi-version concurrency control mechanism)
Other
1 stars 0 forks source link

kernel benchmark (mvrlu + spinlock) #56

Closed MadPlayer closed 3 years ago

MadPlayer commented 3 years ago

kernel에서 mvrlu와 spinlock 을 하나로 합친 benchmark입니다. kernel에 mvrlu를 적용하려면 코드수정이 필요합니다. mvrlu_init 등이 benchmark 실행시마다 실행되어 kernel에 적용되면 충돌이 일어납니다.

bigsys-gnu commented 3 years ago

kernel에서 mvrlu와 spinlock 을 하나로 합친 benchmark입니다. kernel에 mvrlu를 적용하려면 코드수정이 필요합니다. mvrlu_init 등이 benchmark 실행시마다 실행되어 kernel에 적용되면 충돌이 일어납니다.

충돌이 일어나는건 무슨뜻이에요? mvrlu와 spinlock 실행은 인자로 구분이 가능한거에요?

bigsys-gnu commented 3 years ago

@gitrvy2 건표씨 커널 벤치마크 부분 코드 리뷰좀 해주세요.

MadPlayer commented 3 years ago

kernel에서 mvrlu와 spinlock 을 하나로 합친 benchmark입니다. kernel에 mvrlu를 적용하려면 코드수정이 필요합니다. mvrlu_init 등이 benchmark 실행시마다 실행되어 kernel에 적용되면 충돌이 일어납니다.

충돌이 일어나는건 무슨뜻이에요? mvrlu와 spinlock 실행은 인자로 구분이 가능한거에요?

벤치마크 타입은 -r 옵션으로 변경가능합니다 0이면 SPINLOCK 1이면 MVRLU 입니다.

충돌은 mvrlu.c 안에 있는 전역변수와 mvrlu_init 함수에서 초기화하는 init 변수때문에 그렇습니다. kernel에 적용하는 것과 동시에 사용할 경우 실행에 문제가 있을 것으로 보입니다. (동시에 다수의 qp_thread가 전역변수 사용 등)