Loading init/libprefetch/prefetch/src/tracer/mem.rs +29 −15 Original line number Diff line number Diff line Loading @@ -320,8 +320,8 @@ impl TraceLineInfo { // Convenience function to create regex. Used once per life of `record` but multiple times in // case of tests. pub fn get_trace_line_regex() -> Result<Regex, Error> { // TODO: Fix this Regex expression for 5.15 kernels. This expression // works only on 6.1+. Prior to 6.1, "<page>" was present in the output. // `page=[hex]` entry exists in 5.x kernel format but not in 6.x. // Conversely, `order=[digit]` entry exists in 6.x kernel format but not in 5.x. Regex::new(concat!( r"^\s+(?P<cmd_pid>\S+)", r"\s+(?P<cpu>\S+)", Loading @@ -330,9 +330,10 @@ impl TraceLineInfo { r"\s+mm_filemap_add_to_page_cache:", r"\s+dev\s+(?P<major>[0-9]+):(?P<minor>[0-9]+)", r"\s+ino\s+(?P<ino>\S+)", //r"\s+(?P<page>\S+)", r"(?:\s+(?P<page>page=\S+))?", r"\s+(?P<pfn>\S+)", r"\s+ofs=(?P<offset>[0-9]+)" r"\s+ofs=(?P<offset>[0-9]+)", r"(?:\s+(?P<order>\S+))?" )) .map_err(|e| Error::Custom { error: format!("create regex for tracing failed with: {}", e), Loading Loading @@ -682,22 +683,30 @@ mod tests { use super::*; static TRACE_BUFFER: &str = r#" Settingide-502 [001] .... 484.360292: mm_filemap_add_to_page_CACHE: dev 254:6 ino cf1 page=68d477 pfn=59833 ofs=32768 Settingide-502 [001] .... 484.360311: mm_filemap_add_to_page_cache: dev 254:6 ino cf1 page=759458 pfn=59827 ofs=57344 BOX_ENTDED-3071 [001] .... 485.276715: mm_filemap_add_to_pag_ecache: dev 254:6 ino 1 page=00cc1c pfn=81748 ofs=13574144 BOX_ENTDED-3071 [001] .... 485.276990: mm_filemap_add_to_page_cache: dev 254:6 ino cf2 page=36540b pfn=60952 ofs=0 .gms.peent-843 [001] .... 485.545516: mm_filemap_add_to_page_cache: dev 254:6 ino 1 page=002e8b pfn=58928 ofs=13578240 .gms.peent-843 [001] .... 485.545820: mm_filemap_add_to_page_cache: dev 254:6 ino cf3 page=6233ce pfn=58108 ofs=0 an.bg-459 [001] .... 494.029396: mm_filemap_add_to_page_cache: dev 254:3 ino 7cf page=c5b5c7 pfn=373933 ofs=1310720 an.bg-459 [001] .... 494.029398: mm_filemap_add_to_page_cache: dev 254:3 ino 7cf page=b8b9ec pfn=410074 ofs=1314816 "#; static TRACE_BUFFER: &str = concat!( // kernel 5.x " Settingide-502 [001] .... 484.360292: mm_filemap_add_to_page_CACHE: dev 254:6 ino cf1 page=68d477 pfn=59833 ofs=32768\n", " Settingide-502 [001] .... 484.360311: mm_filemap_add_to_page_cache: dev 254:6 ino cf1 page=759458 pfn=59827 ofs=57344\n", " BOX_ENTDED-3071 [001] .... 485.276715: mm_filemap_add_to_pag_ecache: dev 254:6 ino 1 page=00cc1c pfn=81748 ofs=13574144\n", " BOX_ENTDED-3071 [001] .... 485.276990: mm_filemap_add_to_page_cache: dev 254:6 ino cf2 page=36540b pfn=60952 ofs=0\n", " .gms.peent-843 [001] .... 485.545516: mm_filemap_add_to_page_cache: dev 254:6 ino 1 page=002e8b pfn=58928 ofs=13578240\n", " .gms.peent-843 [001] .... 485.545820: mm_filemap_add_to_page_cache: dev 254:6 ino cf3 page=6233ce pfn=58108 ofs=0\n", " an.bg-459 [001] .... 494.029396: mm_filemap_add_to_page_cache: dev 254:3 ino 7cf page=c5b5c7 pfn=373933 ofs=1310720\n", " an.bg-459 [001] .... 494.029398: mm_filemap_add_to_page_cache: dev 254:3 ino 7cf page=b8b9ec pfn=410074 ofs=1314816\n", // kernel 6.x " logcat-686 [006] ..... 148216.040320: mm_filemap_add_to_page_CACHE: dev 254:85 ino 3f15 pfn=0x213bc2 ofs=528384 order=0\n", " logcat-686 [001] ..... 148217.776227: mm_filemap_add_to_page_cache: dev 254:85 ino 3f15 pfn=0x21d306 ofs=532480 order=0\n", " logcat-686 [003] ..... 148219.044389: mm_filemap_add_to_pag_ecache: dev 254:85 ino 3f15 pfn=0x224b8d ofs=536576 order=0\n", " logcat-686 [001] ..... 148220.780964: mm_filemap_add_to_page_cache: dev 254:85 ino 3f15 pfn=0x1bfe0a ofs=540672 order=0\n", " logcat-686 [001] ..... 148223.046560: mm_filemap_add_to_page_cache: dev 254:85 ino 3f15 pfn=0x1f3d29 ofs=544768 order=0", ); fn sample_mem_traces() -> (String, Vec<Option<TraceLineInfo>>) { ( TRACE_BUFFER.to_owned(), vec![ None, // 5.x None, Some(TraceLineInfo::from_fields(254, 6, 0xcf1, 57344, 484360311000)), None, Loading @@ -706,7 +715,12 @@ mod tests { Some(TraceLineInfo::from_fields(254, 6, 0xcf3, 0, 485545820000)), Some(TraceLineInfo::from_fields(254, 3, 0x7cf, 1310720, 494029396000)), Some(TraceLineInfo::from_fields(254, 3, 0x7cf, 1314816, 494029398000)), // 6.x None, Some(TraceLineInfo::from_fields(254, 85, 0x3f15, 532480, 148217776227000)), None, Some(TraceLineInfo::from_fields(254, 85, 0x3f15, 540672, 148220780964000)), Some(TraceLineInfo::from_fields(254, 85, 0x3f15, 544768, 148223046560000)), ], ) } Loading Loading
init/libprefetch/prefetch/src/tracer/mem.rs +29 −15 Original line number Diff line number Diff line Loading @@ -320,8 +320,8 @@ impl TraceLineInfo { // Convenience function to create regex. Used once per life of `record` but multiple times in // case of tests. pub fn get_trace_line_regex() -> Result<Regex, Error> { // TODO: Fix this Regex expression for 5.15 kernels. This expression // works only on 6.1+. Prior to 6.1, "<page>" was present in the output. // `page=[hex]` entry exists in 5.x kernel format but not in 6.x. // Conversely, `order=[digit]` entry exists in 6.x kernel format but not in 5.x. Regex::new(concat!( r"^\s+(?P<cmd_pid>\S+)", r"\s+(?P<cpu>\S+)", Loading @@ -330,9 +330,10 @@ impl TraceLineInfo { r"\s+mm_filemap_add_to_page_cache:", r"\s+dev\s+(?P<major>[0-9]+):(?P<minor>[0-9]+)", r"\s+ino\s+(?P<ino>\S+)", //r"\s+(?P<page>\S+)", r"(?:\s+(?P<page>page=\S+))?", r"\s+(?P<pfn>\S+)", r"\s+ofs=(?P<offset>[0-9]+)" r"\s+ofs=(?P<offset>[0-9]+)", r"(?:\s+(?P<order>\S+))?" )) .map_err(|e| Error::Custom { error: format!("create regex for tracing failed with: {}", e), Loading Loading @@ -682,22 +683,30 @@ mod tests { use super::*; static TRACE_BUFFER: &str = r#" Settingide-502 [001] .... 484.360292: mm_filemap_add_to_page_CACHE: dev 254:6 ino cf1 page=68d477 pfn=59833 ofs=32768 Settingide-502 [001] .... 484.360311: mm_filemap_add_to_page_cache: dev 254:6 ino cf1 page=759458 pfn=59827 ofs=57344 BOX_ENTDED-3071 [001] .... 485.276715: mm_filemap_add_to_pag_ecache: dev 254:6 ino 1 page=00cc1c pfn=81748 ofs=13574144 BOX_ENTDED-3071 [001] .... 485.276990: mm_filemap_add_to_page_cache: dev 254:6 ino cf2 page=36540b pfn=60952 ofs=0 .gms.peent-843 [001] .... 485.545516: mm_filemap_add_to_page_cache: dev 254:6 ino 1 page=002e8b pfn=58928 ofs=13578240 .gms.peent-843 [001] .... 485.545820: mm_filemap_add_to_page_cache: dev 254:6 ino cf3 page=6233ce pfn=58108 ofs=0 an.bg-459 [001] .... 494.029396: mm_filemap_add_to_page_cache: dev 254:3 ino 7cf page=c5b5c7 pfn=373933 ofs=1310720 an.bg-459 [001] .... 494.029398: mm_filemap_add_to_page_cache: dev 254:3 ino 7cf page=b8b9ec pfn=410074 ofs=1314816 "#; static TRACE_BUFFER: &str = concat!( // kernel 5.x " Settingide-502 [001] .... 484.360292: mm_filemap_add_to_page_CACHE: dev 254:6 ino cf1 page=68d477 pfn=59833 ofs=32768\n", " Settingide-502 [001] .... 484.360311: mm_filemap_add_to_page_cache: dev 254:6 ino cf1 page=759458 pfn=59827 ofs=57344\n", " BOX_ENTDED-3071 [001] .... 485.276715: mm_filemap_add_to_pag_ecache: dev 254:6 ino 1 page=00cc1c pfn=81748 ofs=13574144\n", " BOX_ENTDED-3071 [001] .... 485.276990: mm_filemap_add_to_page_cache: dev 254:6 ino cf2 page=36540b pfn=60952 ofs=0\n", " .gms.peent-843 [001] .... 485.545516: mm_filemap_add_to_page_cache: dev 254:6 ino 1 page=002e8b pfn=58928 ofs=13578240\n", " .gms.peent-843 [001] .... 485.545820: mm_filemap_add_to_page_cache: dev 254:6 ino cf3 page=6233ce pfn=58108 ofs=0\n", " an.bg-459 [001] .... 494.029396: mm_filemap_add_to_page_cache: dev 254:3 ino 7cf page=c5b5c7 pfn=373933 ofs=1310720\n", " an.bg-459 [001] .... 494.029398: mm_filemap_add_to_page_cache: dev 254:3 ino 7cf page=b8b9ec pfn=410074 ofs=1314816\n", // kernel 6.x " logcat-686 [006] ..... 148216.040320: mm_filemap_add_to_page_CACHE: dev 254:85 ino 3f15 pfn=0x213bc2 ofs=528384 order=0\n", " logcat-686 [001] ..... 148217.776227: mm_filemap_add_to_page_cache: dev 254:85 ino 3f15 pfn=0x21d306 ofs=532480 order=0\n", " logcat-686 [003] ..... 148219.044389: mm_filemap_add_to_pag_ecache: dev 254:85 ino 3f15 pfn=0x224b8d ofs=536576 order=0\n", " logcat-686 [001] ..... 148220.780964: mm_filemap_add_to_page_cache: dev 254:85 ino 3f15 pfn=0x1bfe0a ofs=540672 order=0\n", " logcat-686 [001] ..... 148223.046560: mm_filemap_add_to_page_cache: dev 254:85 ino 3f15 pfn=0x1f3d29 ofs=544768 order=0", ); fn sample_mem_traces() -> (String, Vec<Option<TraceLineInfo>>) { ( TRACE_BUFFER.to_owned(), vec![ None, // 5.x None, Some(TraceLineInfo::from_fields(254, 6, 0xcf1, 57344, 484360311000)), None, Loading @@ -706,7 +715,12 @@ mod tests { Some(TraceLineInfo::from_fields(254, 6, 0xcf3, 0, 485545820000)), Some(TraceLineInfo::from_fields(254, 3, 0x7cf, 1310720, 494029396000)), Some(TraceLineInfo::from_fields(254, 3, 0x7cf, 1314816, 494029398000)), // 6.x None, Some(TraceLineInfo::from_fields(254, 85, 0x3f15, 532480, 148217776227000)), None, Some(TraceLineInfo::from_fields(254, 85, 0x3f15, 540672, 148220780964000)), Some(TraceLineInfo::from_fields(254, 85, 0x3f15, 544768, 148223046560000)), ], ) } Loading