LCOV - code coverage report
Current view: top level - include/linux - psi.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 7 9 77.8 %
Date: 2021-04-22 12:43:58 Functions: 0 0 -

          Line data    Source code
       1             : #ifndef _LINUX_PSI_H
       2             : #define _LINUX_PSI_H
       3             : 
       4             : #include <linux/jump_label.h>
       5             : #include <linux/psi_types.h>
       6             : #include <linux/sched.h>
       7             : #include <linux/poll.h>
       8             : 
       9             : struct seq_file;
      10             : struct css_set;
      11             : 
      12             : #ifdef CONFIG_PSI
      13             : 
      14             : extern struct static_key_false psi_disabled;
      15             : extern struct psi_group psi_system;
      16             : 
      17             : void psi_init(void);
      18             : 
      19             : void psi_task_change(struct task_struct *task, int clear, int set);
      20             : void psi_task_switch(struct task_struct *prev, struct task_struct *next,
      21             :                      bool sleep);
      22             : 
      23             : void psi_memstall_tick(struct task_struct *task, int cpu);
      24             : void psi_memstall_enter(unsigned long *flags);
      25             : void psi_memstall_leave(unsigned long *flags);
      26             : 
      27             : int psi_show(struct seq_file *s, struct psi_group *group, enum psi_res res);
      28             : 
      29             : #ifdef CONFIG_CGROUPS
      30             : int psi_cgroup_alloc(struct cgroup *cgrp);
      31             : void psi_cgroup_free(struct cgroup *cgrp);
      32             : void cgroup_move_task(struct task_struct *p, struct css_set *to);
      33             : 
      34             : struct psi_trigger *psi_trigger_create(struct psi_group *group,
      35             :                         char *buf, size_t nbytes, enum psi_res res);
      36             : void psi_trigger_replace(void **trigger_ptr, struct psi_trigger *t);
      37             : 
      38             : __poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,
      39             :                         poll_table *wait);
      40             : #endif
      41             : 
      42             : #else /* CONFIG_PSI */
      43             : 
      44           1 : static inline void psi_init(void) {}
      45             : 
      46           0 : static inline void psi_memstall_enter(unsigned long *flags) {}
      47           0 : static inline void psi_memstall_leave(unsigned long *flags) {}
      48             : 
      49             : #ifdef CONFIG_CGROUPS
      50          98 : static inline int psi_cgroup_alloc(struct cgroup *cgrp)
      51             : {
      52          98 :         return 0;
      53             : }
      54          50 : static inline void psi_cgroup_free(struct cgroup *cgrp)
      55             : {
      56          50 : }
      57        1265 : static inline void cgroup_move_task(struct task_struct *p, struct css_set *to)
      58             : {
      59        1265 :         rcu_assign_pointer(p->cgroups, to);
      60             : }
      61             : #endif
      62             : 
      63             : #endif /* CONFIG_PSI */
      64             : 
      65             : #endif /* _LINUX_PSI_H */

Generated by: LCOV version 1.14