Remoev unnecessary logging of cuLibraryGetModule

This commit is contained in:
Andrzej Janik 2025-09-29 21:00:32 +00:00
commit 27ba80ba4b
3 changed files with 1 additions and 35 deletions

View file

@ -847,7 +847,6 @@ cuda_function_declarations!(
cuDeviceGetAttribute,
cuDeviceComputeCapability,
cuModuleLoadFatBinary,
cuLibraryGetModule,
cuLibraryLoadData
],
override_fn_core <= [cuGetProcAddress, cuGetProcAddress_v2],
@ -1388,20 +1387,6 @@ pub(crate) fn cuModuleLoadFatBinary_Post(
state.record_new_library(unsafe { *module }, fatbin_header.cast(), fn_logger)
}
#[allow(non_snake_case)]
pub(crate) fn cuLibraryGetModule_Post(
module: *mut cuda_types::cuda::CUmodule,
library: cuda_types::cuda::CUlibrary,
state: &mut trace::StateTracker,
fn_logger: &mut FnCallLog,
_result: CUresult,
) {
match state.libraries.get(&library).copied() {
None => fn_logger.log(log::ErrorEntry::UnknownLibrary(library)),
Some(code) => state.record_new_library(unsafe { *module }, code.0, fn_logger),
}
}
#[allow(non_snake_case)]
pub(crate) fn cuLibraryLoadData_Post(
library: *mut cuda_types::cuda::CUlibrary,
@ -1416,9 +1401,6 @@ pub(crate) fn cuLibraryLoadData_Post(
fn_logger: &mut FnCallLog,
_result: CUresult,
) {
state
.libraries
.insert(unsafe { *library }, trace::CodePointer(code));
// TODO: this is not correct, but it's enough for now, we just want to
// save the binary to disk
state.record_new_library(unsafe { CUmodule((*library).0.cast()) }, code, fn_logger);

View file

@ -2,7 +2,6 @@ use super::Settings;
use crate::FnCallLog;
use crate::LogEntry;
use cuda_types::cuda::*;
use format::CudaDisplay;
use std::error::Error;
use std::ffi::c_void;
use std::ffi::NulError;
@ -302,7 +301,6 @@ pub(crate) enum ErrorEntry {
overriden: [u64; 2],
},
NullPointer(&'static str),
UnknownLibrary(CUlibrary),
SavedModule(String),
}
@ -426,12 +424,6 @@ impl Display for ErrorEntry {
ErrorEntry::NullPointer(type_) => {
write!(f, "Null pointer of type {type_} encountered")
}
ErrorEntry::UnknownLibrary(culibrary) => {
write!(f, "Unknown library: ")?;
let mut temp_buffer = Vec::new();
CudaDisplay::write(culibrary, "", 0, &mut temp_buffer).ok();
f.write_str(&unsafe { String::from_utf8_unchecked(temp_buffer) })
}
ErrorEntry::SavedModule(file) => write!(f, "Saved module to {file}"),
}
}

View file

@ -4,7 +4,7 @@ use crate::{
};
use cuda_types::cuda::*;
use goblin::{elf, elf32, elf64};
use rustc_hash::{FxHashMap, FxHashSet};
use rustc_hash::FxHashSet;
use std::{
ffi::{c_void, CStr, CString},
fs::{self, File},
@ -20,23 +20,15 @@ use unwrap_or::unwrap_some_or;
// * writes out relevant state change and details to disk and log
pub(crate) struct StateTracker {
writer: DumpWriter,
pub(crate) libraries: FxHashMap<CUlibrary, CodePointer>,
saved_modules: FxHashSet<CUmodule>,
library_counter: usize,
pub(crate) override_cc: Option<(u32, u32)>,
}
#[derive(Clone, Copy)]
pub(crate) struct CodePointer(pub *const c_void);
unsafe impl Send for CodePointer {}
unsafe impl Sync for CodePointer {}
impl StateTracker {
pub(crate) fn new(settings: &Settings) -> Self {
StateTracker {
writer: DumpWriter::new(settings.dump_dir.clone()),
libraries: FxHashMap::default(),
saved_modules: FxHashSet::default(),
library_counter: 0,
override_cc: settings.override_cc,