@@ -469,6 +469,7 @@ pub struct CgroupMemoryModel {
469469 pub file_writeback : Option < u64 > ,
470470 pub file_thp : Option < u64 > ,
471471 pub anon_thp : Option < u64 > ,
472+ pub shmem_thp : Option < u64 > ,
472473 pub inactive_anon : Option < u64 > ,
473474 pub active_anon : Option < u64 > ,
474475 pub inactive_file : Option < u64 > ,
@@ -527,6 +528,7 @@ impl std::ops::Add for CgroupMemoryModel {
527528 file_writeback : opt_add ( self . file_writeback , other. file_writeback ) ,
528529 file_thp : opt_add ( self . file_thp , other. file_thp ) ,
529530 anon_thp : opt_add ( self . anon_thp , other. anon_thp ) ,
531+ shmem_thp : opt_add ( self . shmem_thp , other. shmem_thp ) ,
530532 inactive_anon : opt_add ( self . inactive_anon , other. inactive_anon ) ,
531533 active_anon : opt_add ( self . active_anon , other. active_anon ) ,
532534 inactive_file : opt_add ( self . inactive_file , other. inactive_file ) ,
@@ -598,48 +600,45 @@ impl CgroupMemoryModel {
598600 zswap : sample. memory_zswap_current . map ( |v| v as u64 ) ,
599601 ..Default :: default ( )
600602 } ;
601- if let Some ( events) = & sample. memory_events {
602- if let Some ( (
603+ if let Some ( events) = & sample. memory_events
604+ && let Some ( (
603605 CgroupSample {
604606 memory_events : Some ( last_memory_events) ,
605607 ..
606608 } ,
607609 delta,
608610 ) ) = last
609- {
610- model. events_low = count_per_sec ! ( last_memory_events. low, events. low, delta, u64 ) ;
611- model. events_high =
612- count_per_sec ! ( last_memory_events. high, events. high, delta, u64 ) ;
613- model. events_max = count_per_sec ! ( last_memory_events. max, events. max, delta, u64 ) ;
614- model. events_oom = count_per_sec ! ( last_memory_events. oom, events. oom, delta, u64 ) ;
615- model. events_oom_kill =
616- count_per_sec ! ( last_memory_events. oom_kill, events. oom_kill, delta, u64 ) ;
617- }
611+ {
612+ model. events_low = count_per_sec ! ( last_memory_events. low, events. low, delta, u64 ) ;
613+ model. events_high = count_per_sec ! ( last_memory_events. high, events. high, delta, u64 ) ;
614+ model. events_max = count_per_sec ! ( last_memory_events. max, events. max, delta, u64 ) ;
615+ model. events_oom = count_per_sec ! ( last_memory_events. oom, events. oom, delta, u64 ) ;
616+ model. events_oom_kill =
617+ count_per_sec ! ( last_memory_events. oom_kill, events. oom_kill, delta, u64 ) ;
618618 }
619- if let Some ( events_local) = & sample. memory_events_local {
620- if let Some ( (
619+ if let Some ( events_local) = & sample. memory_events_local
620+ && let Some ( (
621621 CgroupSample {
622622 memory_events_local : Some ( last_memory_events_local) ,
623623 ..
624624 } ,
625625 delta,
626626 ) ) = last
627- {
628- model. events_local_low =
629- count_per_sec ! ( last_memory_events_local. low, events_local. low, delta, u64 ) ;
630- model. events_local_high =
631- count_per_sec ! ( last_memory_events_local. high, events_local. high, delta, u64 ) ;
632- model. events_local_max =
633- count_per_sec ! ( last_memory_events_local. max, events_local. max, delta, u64 ) ;
634- model. events_local_oom =
635- count_per_sec ! ( last_memory_events_local. oom, events_local. oom, delta, u64 ) ;
636- model. events_local_oom_kill = count_per_sec ! (
637- last_memory_events_local. oom_kill,
638- events_local. oom_kill,
639- delta,
640- u64
641- ) ;
642- }
627+ {
628+ model. events_local_low =
629+ count_per_sec ! ( last_memory_events_local. low, events_local. low, delta, u64 ) ;
630+ model. events_local_high =
631+ count_per_sec ! ( last_memory_events_local. high, events_local. high, delta, u64 ) ;
632+ model. events_local_max =
633+ count_per_sec ! ( last_memory_events_local. max, events_local. max, delta, u64 ) ;
634+ model. events_local_oom =
635+ count_per_sec ! ( last_memory_events_local. oom, events_local. oom, delta, u64 ) ;
636+ model. events_local_oom_kill = count_per_sec ! (
637+ last_memory_events_local. oom_kill,
638+ events_local. oom_kill,
639+ delta,
640+ u64
641+ ) ;
643642 }
644643 if let Some ( stat) = & sample. memory_stat {
645644 model. anon = stat. anon ;
@@ -659,6 +658,7 @@ impl CgroupMemoryModel {
659658 model. file_writeback = stat. file_writeback ;
660659 model. file_thp = stat. file_thp ;
661660 model. anon_thp = stat. anon_thp ;
661+ model. shmem_thp = stat. shmem_thp ;
662662 model. inactive_anon = stat. inactive_anon ;
663663 model. active_anon = stat. active_anon ;
664664 model. inactive_file = stat. inactive_file ;
0 commit comments