static int rdt_get_tree(struct fs_context *fc)
 {
        struct rdt_fs_context *ctx = rdt_fc2context(fc);
+       unsigned long flags = RFTYPE_CTRL_BASE;
        struct rdt_domain *dom;
        struct rdt_resource *r;
        int ret;
 
        closid_init();
 
-       ret = rdtgroup_add_files(rdtgroup_default.kn, RFTYPE_CTRL_BASE);
+       if (rdt_mon_capable)
+               flags |= RFTYPE_MON;
+
+       ret = rdtgroup_add_files(rdtgroup_default.kn, flags);
        if (ret)
                goto out_schemata_free;
 
                             enum rdt_group_type rtype, struct rdtgroup **r)
 {
        struct rdtgroup *prdtgrp, *rdtgrp;
+       unsigned long files = 0;
        struct kernfs_node *kn;
-       uint files = 0;
        int ret;
 
        prdtgrp = rdtgroup_kn_lock_live(parent_kn);
                goto out_destroy;
        }
 
-       if (rtype == RDTCTRL_GROUP)
+       if (rtype == RDTCTRL_GROUP) {
                files = RFTYPE_BASE | RFTYPE_CTRL;
-       else
+               if (rdt_mon_capable)
+                       files |= RFTYPE_MON;
+       } else {
                files = RFTYPE_BASE | RFTYPE_MON;
+       }
 
        ret = rdtgroup_add_files(kn, files);
        if (ret) {