static int __init zswap_debugfs_init(void) { if (!debugfs_initialized()) return -ENODEV; zswap_debugfs_root = debugfs_create_dir("zswap", NULL); if (!zswap_debugfs_root) return -ENOMEM; debugfs_create_u64("pool_limit_hit", S_IRUGO, zswap_debugfs_root, &zswap_pool_limit_hit); debugfs_create_u64("reject_reclaim_fail", S_IRUGO, zswap_debugfs_root, &zswap_reject_reclaim_fail); debugfs_create_u64("reject_alloc_fail", S_IRUGO, zswap_debugfs_root, &zswap_reject_alloc_fail); debugfs_create_u64("reject_kmemcache_fail", S_IRUGO, zswap_debugfs_root, &zswap_reject_kmemcache_fail); debugfs_create_u64("reject_compress_poor", S_IRUGO, zswap_debugfs_root, &zswap_reject_compress_poor); debugfs_create_u64("written_back_pages", S_IRUGO, zswap_debugfs_root, &zswap_written_back_pages); debugfs_create_u64("duplicate_entry", S_IRUGO, zswap_debugfs_root, &zswap_duplicate_entry); debugfs_create_u64("pool_total_size", S_IRUGO, zswap_debugfs_root, &zswap_pool_total_size); debugfs_create_u64("pool_pages", S_IRUGO, zswap_debugfs_root, &zswap_pool_pages); debugfs_create_atomic_t("stored_pages", S_IRUGO, zswap_debugfs_root, &zswap_stored_pages); debugfs_create_atomic_t("zero_pages", S_IRUGO, zswap_debugfs_root, &zswap_zero_pages); return 0; }
static void pp_setup_dbgfs(struct pp_ctx *pp) { struct pci_dev *pdev = pp->ntb->pdev; void *ret; pp->dbgfs_dir = debugfs_create_dir(pci_name(pdev), pp_dbgfs_topdir); ret = debugfs_create_atomic_t("count", 0600, pp->dbgfs_dir, &pp->count); if (!ret) dev_warn(&pp->ntb->dev, "DebugFS unsupported\n"); }
static int io_pgtable_init(void) { io_pgtable_top = debugfs_create_dir("io-pgtable", iommu_debugfs_top); if (!io_pgtable_top) return -ENODEV; if (!debugfs_create_atomic_t("pages", 0600, io_pgtable_top, &pages_allocated)) { debugfs_remove_recursive(io_pgtable_top); return -ENODEV; } return 0; }
int init_fault_attr_dentries(struct fault_attr *attr, const char *name) { mode_t mode = S_IFREG | S_IRUSR | S_IWUSR; struct dentry *dir; memset(&attr->dentries, 0, sizeof(attr->dentries)); dir = debugfs_create_dir(name, NULL); if (!dir) goto fail; attr->dentries.dir = dir; attr->dentries.probability_file = debugfs_create_ul("probability", mode, dir, &attr->probability); attr->dentries.interval_file = debugfs_create_ul("interval", mode, dir, &attr->interval); attr->dentries.times_file = debugfs_create_atomic_t("times", mode, dir, &attr->times); attr->dentries.space_file = debugfs_create_atomic_t("space", mode, dir, &attr->space); attr->dentries.verbose_file = debugfs_create_ul("verbose", mode, dir, &attr->verbose); attr->dentries.task_filter_file = debugfs_create_bool("task-filter", mode, dir, &attr->task_filter); if (!attr->dentries.probability_file || !attr->dentries.interval_file || !attr->dentries.times_file || !attr->dentries.space_file || !attr->dentries.verbose_file || !attr->dentries.task_filter_file) goto fail; #ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER attr->dentries.stacktrace_depth_file = debugfs_create_ul_MAX_STACK_TRACE_DEPTH( "stacktrace-depth", mode, dir, &attr->stacktrace_depth); attr->dentries.require_start_file = debugfs_create_ul("require-start", mode, dir, &attr->require_start); attr->dentries.require_end_file = debugfs_create_ul("require-end", mode, dir, &attr->require_end); attr->dentries.reject_start_file = debugfs_create_ul("reject-start", mode, dir, &attr->reject_start); attr->dentries.reject_end_file = debugfs_create_ul("reject-end", mode, dir, &attr->reject_end); if (!attr->dentries.stacktrace_depth_file || !attr->dentries.require_start_file || !attr->dentries.require_end_file || !attr->dentries.reject_start_file || !attr->dentries.reject_end_file) goto fail; #endif /* CONFIG_FAULT_INJECTION_STACKTRACE_FILTER */ return 0; fail: cleanup_fault_attr_dentries(attr); return -ENOMEM; }