18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* FS-Cache statistics 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 58c2ecf20Sopenharmony_ci * Written by David Howells (dhowells@redhat.com) 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#define FSCACHE_DEBUG_LEVEL THREAD 98c2ecf20Sopenharmony_ci#include <linux/module.h> 108c2ecf20Sopenharmony_ci#include <linux/proc_fs.h> 118c2ecf20Sopenharmony_ci#include <linux/seq_file.h> 128c2ecf20Sopenharmony_ci#include "internal.h" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci/* 158c2ecf20Sopenharmony_ci * operation counters 168c2ecf20Sopenharmony_ci */ 178c2ecf20Sopenharmony_ciatomic_t fscache_n_op_pend; 188c2ecf20Sopenharmony_ciatomic_t fscache_n_op_run; 198c2ecf20Sopenharmony_ciatomic_t fscache_n_op_enqueue; 208c2ecf20Sopenharmony_ciatomic_t fscache_n_op_deferred_release; 218c2ecf20Sopenharmony_ciatomic_t fscache_n_op_initialised; 228c2ecf20Sopenharmony_ciatomic_t fscache_n_op_release; 238c2ecf20Sopenharmony_ciatomic_t fscache_n_op_gc; 248c2ecf20Sopenharmony_ciatomic_t fscache_n_op_cancelled; 258c2ecf20Sopenharmony_ciatomic_t fscache_n_op_rejected; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciatomic_t fscache_n_attr_changed; 288c2ecf20Sopenharmony_ciatomic_t fscache_n_attr_changed_ok; 298c2ecf20Sopenharmony_ciatomic_t fscache_n_attr_changed_nobufs; 308c2ecf20Sopenharmony_ciatomic_t fscache_n_attr_changed_nomem; 318c2ecf20Sopenharmony_ciatomic_t fscache_n_attr_changed_calls; 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciatomic_t fscache_n_allocs; 348c2ecf20Sopenharmony_ciatomic_t fscache_n_allocs_ok; 358c2ecf20Sopenharmony_ciatomic_t fscache_n_allocs_wait; 368c2ecf20Sopenharmony_ciatomic_t fscache_n_allocs_nobufs; 378c2ecf20Sopenharmony_ciatomic_t fscache_n_allocs_intr; 388c2ecf20Sopenharmony_ciatomic_t fscache_n_allocs_object_dead; 398c2ecf20Sopenharmony_ciatomic_t fscache_n_alloc_ops; 408c2ecf20Sopenharmony_ciatomic_t fscache_n_alloc_op_waits; 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciatomic_t fscache_n_retrievals; 438c2ecf20Sopenharmony_ciatomic_t fscache_n_retrievals_ok; 448c2ecf20Sopenharmony_ciatomic_t fscache_n_retrievals_wait; 458c2ecf20Sopenharmony_ciatomic_t fscache_n_retrievals_nodata; 468c2ecf20Sopenharmony_ciatomic_t fscache_n_retrievals_nobufs; 478c2ecf20Sopenharmony_ciatomic_t fscache_n_retrievals_intr; 488c2ecf20Sopenharmony_ciatomic_t fscache_n_retrievals_nomem; 498c2ecf20Sopenharmony_ciatomic_t fscache_n_retrievals_object_dead; 508c2ecf20Sopenharmony_ciatomic_t fscache_n_retrieval_ops; 518c2ecf20Sopenharmony_ciatomic_t fscache_n_retrieval_op_waits; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ciatomic_t fscache_n_stores; 548c2ecf20Sopenharmony_ciatomic_t fscache_n_stores_ok; 558c2ecf20Sopenharmony_ciatomic_t fscache_n_stores_again; 568c2ecf20Sopenharmony_ciatomic_t fscache_n_stores_nobufs; 578c2ecf20Sopenharmony_ciatomic_t fscache_n_stores_oom; 588c2ecf20Sopenharmony_ciatomic_t fscache_n_store_ops; 598c2ecf20Sopenharmony_ciatomic_t fscache_n_store_calls; 608c2ecf20Sopenharmony_ciatomic_t fscache_n_store_pages; 618c2ecf20Sopenharmony_ciatomic_t fscache_n_store_radix_deletes; 628c2ecf20Sopenharmony_ciatomic_t fscache_n_store_pages_over_limit; 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ciatomic_t fscache_n_store_vmscan_not_storing; 658c2ecf20Sopenharmony_ciatomic_t fscache_n_store_vmscan_gone; 668c2ecf20Sopenharmony_ciatomic_t fscache_n_store_vmscan_busy; 678c2ecf20Sopenharmony_ciatomic_t fscache_n_store_vmscan_cancelled; 688c2ecf20Sopenharmony_ciatomic_t fscache_n_store_vmscan_wait; 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ciatomic_t fscache_n_marks; 718c2ecf20Sopenharmony_ciatomic_t fscache_n_uncaches; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ciatomic_t fscache_n_acquires; 748c2ecf20Sopenharmony_ciatomic_t fscache_n_acquires_null; 758c2ecf20Sopenharmony_ciatomic_t fscache_n_acquires_no_cache; 768c2ecf20Sopenharmony_ciatomic_t fscache_n_acquires_ok; 778c2ecf20Sopenharmony_ciatomic_t fscache_n_acquires_nobufs; 788c2ecf20Sopenharmony_ciatomic_t fscache_n_acquires_oom; 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ciatomic_t fscache_n_invalidates; 818c2ecf20Sopenharmony_ciatomic_t fscache_n_invalidates_run; 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ciatomic_t fscache_n_updates; 848c2ecf20Sopenharmony_ciatomic_t fscache_n_updates_null; 858c2ecf20Sopenharmony_ciatomic_t fscache_n_updates_run; 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ciatomic_t fscache_n_relinquishes; 888c2ecf20Sopenharmony_ciatomic_t fscache_n_relinquishes_null; 898c2ecf20Sopenharmony_ciatomic_t fscache_n_relinquishes_waitcrt; 908c2ecf20Sopenharmony_ciatomic_t fscache_n_relinquishes_retire; 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ciatomic_t fscache_n_cookie_index; 938c2ecf20Sopenharmony_ciatomic_t fscache_n_cookie_data; 948c2ecf20Sopenharmony_ciatomic_t fscache_n_cookie_special; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ciatomic_t fscache_n_object_alloc; 978c2ecf20Sopenharmony_ciatomic_t fscache_n_object_no_alloc; 988c2ecf20Sopenharmony_ciatomic_t fscache_n_object_lookups; 998c2ecf20Sopenharmony_ciatomic_t fscache_n_object_lookups_negative; 1008c2ecf20Sopenharmony_ciatomic_t fscache_n_object_lookups_positive; 1018c2ecf20Sopenharmony_ciatomic_t fscache_n_object_lookups_timed_out; 1028c2ecf20Sopenharmony_ciatomic_t fscache_n_object_created; 1038c2ecf20Sopenharmony_ciatomic_t fscache_n_object_avail; 1048c2ecf20Sopenharmony_ciatomic_t fscache_n_object_dead; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciatomic_t fscache_n_checkaux_none; 1078c2ecf20Sopenharmony_ciatomic_t fscache_n_checkaux_okay; 1088c2ecf20Sopenharmony_ciatomic_t fscache_n_checkaux_update; 1098c2ecf20Sopenharmony_ciatomic_t fscache_n_checkaux_obsolete; 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_alloc_object; 1128c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_lookup_object; 1138c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_lookup_complete; 1148c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_grab_object; 1158c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_invalidate_object; 1168c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_update_object; 1178c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_drop_object; 1188c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_put_object; 1198c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_sync_cache; 1208c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_attr_changed; 1218c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_read_or_alloc_page; 1228c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_read_or_alloc_pages; 1238c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_allocate_page; 1248c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_allocate_pages; 1258c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_write_page; 1268c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_uncache_page; 1278c2ecf20Sopenharmony_ciatomic_t fscache_n_cop_dissociate_pages; 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ciatomic_t fscache_n_cache_no_space_reject; 1308c2ecf20Sopenharmony_ciatomic_t fscache_n_cache_stale_objects; 1318c2ecf20Sopenharmony_ciatomic_t fscache_n_cache_retired_objects; 1328c2ecf20Sopenharmony_ciatomic_t fscache_n_cache_culled_objects; 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ci/* 1358c2ecf20Sopenharmony_ci * display the general statistics 1368c2ecf20Sopenharmony_ci */ 1378c2ecf20Sopenharmony_ciint fscache_stats_show(struct seq_file *m, void *v) 1388c2ecf20Sopenharmony_ci{ 1398c2ecf20Sopenharmony_ci seq_puts(m, "FS-Cache statistics\n"); 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci seq_printf(m, "Cookies: idx=%u dat=%u spc=%u\n", 1428c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cookie_index), 1438c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cookie_data), 1448c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cookie_special)); 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci seq_printf(m, "Objects: alc=%u nal=%u avl=%u ded=%u\n", 1478c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_alloc), 1488c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_no_alloc), 1498c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_avail), 1508c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_dead)); 1518c2ecf20Sopenharmony_ci seq_printf(m, "ChkAux : non=%u ok=%u upd=%u obs=%u\n", 1528c2ecf20Sopenharmony_ci atomic_read(&fscache_n_checkaux_none), 1538c2ecf20Sopenharmony_ci atomic_read(&fscache_n_checkaux_okay), 1548c2ecf20Sopenharmony_ci atomic_read(&fscache_n_checkaux_update), 1558c2ecf20Sopenharmony_ci atomic_read(&fscache_n_checkaux_obsolete)); 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci seq_printf(m, "Pages : mrk=%u unc=%u\n", 1588c2ecf20Sopenharmony_ci atomic_read(&fscache_n_marks), 1598c2ecf20Sopenharmony_ci atomic_read(&fscache_n_uncaches)); 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci seq_printf(m, "Acquire: n=%u nul=%u noc=%u ok=%u nbf=%u" 1628c2ecf20Sopenharmony_ci " oom=%u\n", 1638c2ecf20Sopenharmony_ci atomic_read(&fscache_n_acquires), 1648c2ecf20Sopenharmony_ci atomic_read(&fscache_n_acquires_null), 1658c2ecf20Sopenharmony_ci atomic_read(&fscache_n_acquires_no_cache), 1668c2ecf20Sopenharmony_ci atomic_read(&fscache_n_acquires_ok), 1678c2ecf20Sopenharmony_ci atomic_read(&fscache_n_acquires_nobufs), 1688c2ecf20Sopenharmony_ci atomic_read(&fscache_n_acquires_oom)); 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci seq_printf(m, "Lookups: n=%u neg=%u pos=%u crt=%u tmo=%u\n", 1718c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_lookups), 1728c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_lookups_negative), 1738c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_lookups_positive), 1748c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_created), 1758c2ecf20Sopenharmony_ci atomic_read(&fscache_n_object_lookups_timed_out)); 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ci seq_printf(m, "Invals : n=%u run=%u\n", 1788c2ecf20Sopenharmony_ci atomic_read(&fscache_n_invalidates), 1798c2ecf20Sopenharmony_ci atomic_read(&fscache_n_invalidates_run)); 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci seq_printf(m, "Updates: n=%u nul=%u run=%u\n", 1828c2ecf20Sopenharmony_ci atomic_read(&fscache_n_updates), 1838c2ecf20Sopenharmony_ci atomic_read(&fscache_n_updates_null), 1848c2ecf20Sopenharmony_ci atomic_read(&fscache_n_updates_run)); 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci seq_printf(m, "Relinqs: n=%u nul=%u wcr=%u rtr=%u\n", 1878c2ecf20Sopenharmony_ci atomic_read(&fscache_n_relinquishes), 1888c2ecf20Sopenharmony_ci atomic_read(&fscache_n_relinquishes_null), 1898c2ecf20Sopenharmony_ci atomic_read(&fscache_n_relinquishes_waitcrt), 1908c2ecf20Sopenharmony_ci atomic_read(&fscache_n_relinquishes_retire)); 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci seq_printf(m, "AttrChg: n=%u ok=%u nbf=%u oom=%u run=%u\n", 1938c2ecf20Sopenharmony_ci atomic_read(&fscache_n_attr_changed), 1948c2ecf20Sopenharmony_ci atomic_read(&fscache_n_attr_changed_ok), 1958c2ecf20Sopenharmony_ci atomic_read(&fscache_n_attr_changed_nobufs), 1968c2ecf20Sopenharmony_ci atomic_read(&fscache_n_attr_changed_nomem), 1978c2ecf20Sopenharmony_ci atomic_read(&fscache_n_attr_changed_calls)); 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci seq_printf(m, "Allocs : n=%u ok=%u wt=%u nbf=%u int=%u\n", 2008c2ecf20Sopenharmony_ci atomic_read(&fscache_n_allocs), 2018c2ecf20Sopenharmony_ci atomic_read(&fscache_n_allocs_ok), 2028c2ecf20Sopenharmony_ci atomic_read(&fscache_n_allocs_wait), 2038c2ecf20Sopenharmony_ci atomic_read(&fscache_n_allocs_nobufs), 2048c2ecf20Sopenharmony_ci atomic_read(&fscache_n_allocs_intr)); 2058c2ecf20Sopenharmony_ci seq_printf(m, "Allocs : ops=%u owt=%u abt=%u\n", 2068c2ecf20Sopenharmony_ci atomic_read(&fscache_n_alloc_ops), 2078c2ecf20Sopenharmony_ci atomic_read(&fscache_n_alloc_op_waits), 2088c2ecf20Sopenharmony_ci atomic_read(&fscache_n_allocs_object_dead)); 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ci seq_printf(m, "Retrvls: n=%u ok=%u wt=%u nod=%u nbf=%u" 2118c2ecf20Sopenharmony_ci " int=%u oom=%u\n", 2128c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrievals), 2138c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrievals_ok), 2148c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrievals_wait), 2158c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrievals_nodata), 2168c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrievals_nobufs), 2178c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrievals_intr), 2188c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrievals_nomem)); 2198c2ecf20Sopenharmony_ci seq_printf(m, "Retrvls: ops=%u owt=%u abt=%u\n", 2208c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrieval_ops), 2218c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrieval_op_waits), 2228c2ecf20Sopenharmony_ci atomic_read(&fscache_n_retrievals_object_dead)); 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ci seq_printf(m, "Stores : n=%u ok=%u agn=%u nbf=%u oom=%u\n", 2258c2ecf20Sopenharmony_ci atomic_read(&fscache_n_stores), 2268c2ecf20Sopenharmony_ci atomic_read(&fscache_n_stores_ok), 2278c2ecf20Sopenharmony_ci atomic_read(&fscache_n_stores_again), 2288c2ecf20Sopenharmony_ci atomic_read(&fscache_n_stores_nobufs), 2298c2ecf20Sopenharmony_ci atomic_read(&fscache_n_stores_oom)); 2308c2ecf20Sopenharmony_ci seq_printf(m, "Stores : ops=%u run=%u pgs=%u rxd=%u olm=%u\n", 2318c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_ops), 2328c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_calls), 2338c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_pages), 2348c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_radix_deletes), 2358c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_pages_over_limit)); 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci seq_printf(m, "VmScan : nos=%u gon=%u bsy=%u can=%u wt=%u\n", 2388c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_vmscan_not_storing), 2398c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_vmscan_gone), 2408c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_vmscan_busy), 2418c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_vmscan_cancelled), 2428c2ecf20Sopenharmony_ci atomic_read(&fscache_n_store_vmscan_wait)); 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci seq_printf(m, "Ops : pend=%u run=%u enq=%u can=%u rej=%u\n", 2458c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_pend), 2468c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_run), 2478c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_enqueue), 2488c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_cancelled), 2498c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_rejected)); 2508c2ecf20Sopenharmony_ci seq_printf(m, "Ops : ini=%u dfr=%u rel=%u gc=%u\n", 2518c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_initialised), 2528c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_deferred_release), 2538c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_release), 2548c2ecf20Sopenharmony_ci atomic_read(&fscache_n_op_gc)); 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n", 2578c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_alloc_object), 2588c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_lookup_object), 2598c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_lookup_complete), 2608c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_grab_object)); 2618c2ecf20Sopenharmony_ci seq_printf(m, "CacheOp: inv=%d upo=%d dro=%d pto=%d atc=%d syn=%d\n", 2628c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_invalidate_object), 2638c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_update_object), 2648c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_drop_object), 2658c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_put_object), 2668c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_attr_changed), 2678c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_sync_cache)); 2688c2ecf20Sopenharmony_ci seq_printf(m, "CacheOp: rap=%d ras=%d alp=%d als=%d wrp=%d ucp=%d dsp=%d\n", 2698c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_read_or_alloc_page), 2708c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_read_or_alloc_pages), 2718c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_allocate_page), 2728c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_allocate_pages), 2738c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_write_page), 2748c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_uncache_page), 2758c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cop_dissociate_pages)); 2768c2ecf20Sopenharmony_ci seq_printf(m, "CacheEv: nsp=%d stl=%d rtr=%d cul=%d\n", 2778c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cache_no_space_reject), 2788c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cache_stale_objects), 2798c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cache_retired_objects), 2808c2ecf20Sopenharmony_ci atomic_read(&fscache_n_cache_culled_objects)); 2818c2ecf20Sopenharmony_ci return 0; 2828c2ecf20Sopenharmony_ci} 283