Remove the implementation of MADV_DONTNEED

This commit is contained in:
Yuke Peng
2024-08-09 12:49:27 +08:00
committed by Tate, Hongliang Tian
parent 97fab9edea
commit c4e9a0db38

View File

@ -17,23 +17,14 @@ pub fn sys_madvise(start: Vaddr, len: usize, behavior: i32) -> Result<SyscallRet
let mut buffer = vec![0u8; len]; let mut buffer = vec![0u8; len];
read_bytes_from_user(start, &mut VmWriter::from(buffer.as_mut_slice()))?; read_bytes_from_user(start, &mut VmWriter::from(buffer.as_mut_slice()))?;
} }
MadviseBehavior::MADV_DONTNEED => madv_dontneed(start, len)?, MadviseBehavior::MADV_DONTNEED => {
warn!("MADV_DONTNEED isn't implemented, do nothing for now.");
}
_ => todo!(), _ => todo!(),
} }
Ok(SyscallReturn::Return(0)) Ok(SyscallReturn::Return(0))
} }
fn madv_dontneed(start: Vaddr, len: usize) -> Result<()> {
debug_assert!(start % PAGE_SIZE == 0);
debug_assert!(len % PAGE_SIZE == 0);
let current = current!();
let root_vmar = current.root_vmar();
let advised_range = start..start + len;
// `destroy()` interface may require adjustment and replacement afterwards.
let _ = root_vmar.destroy(advised_range);
Ok(())
}
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Clone, Copy, TryFromInt)] #[derive(Debug, Clone, Copy, TryFromInt)]
#[allow(non_camel_case_types)] #[allow(non_camel_case_types)]