cregit-Linux how code gets into the kernel

Release 4.7 include/linux/delayacct.h

Directory: include/linux
/* delayacct.h - per-task delay accounting
 *
 * Copyright (C) Shailabh Nagar, IBM Corp. 2006
 *
 * This program is free software;  you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY;  without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
 * the GNU General Public License for more details.
 *
 */

#ifndef _LINUX_DELAYACCT_H

#define _LINUX_DELAYACCT_H

#include <linux/sched.h>
#include <linux/slab.h>

/*
 * Per-task flags relevant to delay accounting
 * maintained privately to avoid exhausting similar flags in sched.h:PF_*
 * Used to set current->delays->flags
 */

#define DELAYACCT_PF_SWAPIN	0x00000001	
/* I am doing a swapin */

#define DELAYACCT_PF_BLKIO	0x00000002	
/* I am waiting on IO */

#ifdef CONFIG_TASK_DELAY_ACCT

extern int delayacct_on;	/* Delay accounting turned on/off */
extern struct kmem_cache *delayacct_cache;
extern void delayacct_init(void);
extern void __delayacct_tsk_init(struct task_struct *);
extern void __delayacct_tsk_exit(struct task_struct *);
extern void __delayacct_blkio_start(void);
extern void __delayacct_blkio_end(void);
extern int __delayacct_add_tsk(struct taskstats *, struct task_struct *);
extern __u64 __delayacct_blkio_ticks(struct task_struct *);
extern void __delayacct_freepages_start(void);
extern void __delayacct_freepages_end(void);


static inline int delayacct_is_task_waiting_on_io(struct task_struct *p) { if (p->delays) return (p->delays->flags & DELAYACCT_PF_BLKIO); else return 0; }

Contributors

PersonTokensPropCommitsCommitProp
balbir singhbalbir singh33100.00%1100.00%
Total33100.00%1100.00%


static inline void delayacct_set_flag(int flag) { if (current->delays) current->delays->flags |= flag; }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar24100.00%1100.00%
Total24100.00%1100.00%


static inline void delayacct_clear_flag(int flag) { if (current->delays) current->delays->flags &= ~flag; }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar25100.00%1100.00%
Total25100.00%1100.00%


static inline void delayacct_tsk_init(struct task_struct *tsk) { /* reinitialize in case parent's non-null pointer was dup'ed*/ tsk->delays = NULL; if (delayacct_on) __delayacct_tsk_init(tsk); }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar28100.00%1100.00%
Total28100.00%1100.00%

/* Free tsk->delays. Called from bad fork and __put_task_struct * where there's no risk of tsk->delays being accessed elsewhere */
static inline void delayacct_tsk_free(struct task_struct *tsk) { if (tsk->delays) kmem_cache_free(delayacct_cache, tsk->delays); tsk->delays = NULL; }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar33100.00%2100.00%
Total33100.00%2100.00%


static inline void delayacct_blkio_start(void) { delayacct_set_flag(DELAYACCT_PF_BLKIO); if (current->delays) __delayacct_blkio_start(); }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar1878.26%150.00%
balbir singhbalbir singh521.74%150.00%
Total23100.00%2100.00%


static inline void delayacct_blkio_end(void) { if (current->delays) __delayacct_blkio_end(); delayacct_clear_flag(DELAYACCT_PF_BLKIO); }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar1878.26%150.00%
balbir singhbalbir singh521.74%150.00%
Total23100.00%2100.00%


static inline int delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk) { if (!delayacct_on || !tsk->delays) return 0; return __delayacct_add_tsk(d, tsk); }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar38100.00%2100.00%
Total38100.00%2100.00%


static inline __u64 delayacct_blkio_ticks(struct task_struct *tsk) { if (tsk->delays) return __delayacct_blkio_ticks(tsk); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar27100.00%1100.00%
Total27100.00%1100.00%


static inline void delayacct_freepages_start(void) { if (current->delays) __delayacct_freepages_start(); }

Contributors

PersonTokensPropCommitsCommitProp
keika kobayashikeika kobayashi18100.00%1100.00%
Total18100.00%1100.00%


static inline void delayacct_freepages_end(void) { if (current->delays) __delayacct_freepages_end(); }

Contributors

PersonTokensPropCommitsCommitProp
keika kobayashikeika kobayashi18100.00%1100.00%
Total18100.00%1100.00%

#else
static inline void delayacct_set_flag(int flag) {}

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar9100.00%1100.00%
Total9100.00%1100.00%


static inline void delayacct_clear_flag(int flag) {}

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar9100.00%1100.00%
Total9100.00%1100.00%


static inline void delayacct_init(void) {}

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar8100.00%1100.00%
Total8100.00%1100.00%


static inline void delayacct_tsk_init(struct task_struct *tsk) {}

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar11100.00%1100.00%
Total11100.00%1100.00%


static inline void delayacct_tsk_free(struct task_struct *tsk) {}

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar11100.00%2100.00%
Total11100.00%2100.00%


static inline void delayacct_blkio_start(void) {}

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar8100.00%1100.00%
Total8100.00%1100.00%


static inline void delayacct_blkio_end(void) {}

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar8100.00%1100.00%
Total8100.00%1100.00%


static inline int delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar20100.00%1100.00%
Total20100.00%1100.00%


static inline __u64 delayacct_blkio_ticks(struct task_struct *tsk) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar15100.00%1100.00%
Total15100.00%1100.00%


static inline int delayacct_is_task_waiting_on_io(struct task_struct *p) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
balbir singhbalbir singh15100.00%1100.00%
Total15100.00%1100.00%


static inline void delayacct_freepages_start(void) {}

Contributors

PersonTokensPropCommitsCommitProp
keika kobayashikeika kobayashi8100.00%1100.00%
Total8100.00%1100.00%


static inline void delayacct_freepages_end(void) {}

Contributors

PersonTokensPropCommitsCommitProp
keika kobayashikeika kobayashi8100.00%1100.00%
Total8100.00%1100.00%

#endif /* CONFIG_TASK_DELAY_ACCT */ #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
shailabh nagarshailabh nagar40775.23%660.00%
keika kobayashikeika kobayashi6612.20%110.00%
balbir singhbalbir singh6311.65%110.00%
tejun heotejun heo30.55%110.00%
christoph lameterchristoph lameter20.37%110.00%
Total541100.00%10100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}