Closed sukyoungjeong-furiosa closed 2 years ago
@libc-furiosa 님, 리뷰 주신 부분을 반영하는 과정에서 간단한 테스트 케이스를 추가하면서 fit 함수의 signature를 변경해보았는데요,
pub(crate) fn fit(&self, arch: Arch, device_file: &DeviceFile) -> bool ;
테스트 코드 쓰기도 간편하고 이 방식이 현재 코드에서 개선이 필요한 지점을 더 정확히 보여줄 것 같아서 변경했습니다.
수고하셨습니다. 머지하겠습니다.
기존에
MultiCore
Mode의DeviceFile
에 대해.core_indices()
함수를 수행하면 빈 벡터를 리턴했습니다. 이는 실제로 multicore mode가 점유하는 코어 정보(=all) 와 맞지 않지만, 해당 파일의 이름만 보고 core list를 가져오는 것이 까다로워서 수정되지 않았고 대신 .is_multicore() 같은 보조 함수를 써서 필요할 때마다 예외 처리가 이루어졌습니다.여기에서는 CoreRange라는 enum 을 넣어서 DeviceFile이 점유하는 core 정보를 나타내게 하고, DeviceConfig가 사용하던 비슷한 용도의 필드도 통합 시켰습니다. multicore device의 경우
All
이라는 variant를 가집니다.그리고 이를 기반으로 DeviceConfig에 .fit()이라는 함수를 추가해서 find 함수 구현을 단순화 합니다. 이 함수의 signature는 다음과 같이 생겼습니다.
파라미터로
DeviceFile
만 받으면 좋겠지만 그러려면 #6 이 해결되어야 하고, 지금은 Device를 같이 받는 형태입니다.