Merge branches 'tracing/ftrace', 'tracing/ring-buffer', 'tracing/sysprof', 'tracing/urgent' and 'linus' into tracing/core
This commit is contained in:
@@ -378,6 +378,7 @@ struct cgroup_subsys {
|
||||
* - initiating hotplug events
|
||||
*/
|
||||
struct mutex hierarchy_mutex;
|
||||
struct lock_class_key subsys_key;
|
||||
|
||||
/*
|
||||
* Link to parent, and list entry in parent's children.
|
||||
|
@@ -282,6 +282,18 @@ static inline void dmaengine_put(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NET_DMA
|
||||
#define net_dmaengine_get() dmaengine_get()
|
||||
#define net_dmaengine_put() dmaengine_put()
|
||||
#else
|
||||
static inline void net_dmaengine_get(void)
|
||||
{
|
||||
}
|
||||
static inline void net_dmaengine_put(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
dma_cookie_t dma_async_memcpy_buf_to_buf(struct dma_chan *chan,
|
||||
void *dest, void *src, size_t len);
|
||||
dma_cookie_t dma_async_memcpy_buf_to_pg(struct dma_chan *chan,
|
||||
|
@@ -33,7 +33,8 @@ unsigned long hugetlb_total_pages(void);
|
||||
int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
|
||||
unsigned long address, int write_access);
|
||||
int hugetlb_reserve_pages(struct inode *inode, long from, long to,
|
||||
struct vm_area_struct *vma);
|
||||
struct vm_area_struct *vma,
|
||||
int acctflags);
|
||||
void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed);
|
||||
|
||||
extern unsigned long hugepages_treat_as_movable;
|
||||
@@ -138,7 +139,7 @@ static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct super_block *sb)
|
||||
|
||||
extern const struct file_operations hugetlbfs_file_operations;
|
||||
extern struct vm_operations_struct hugetlb_vm_ops;
|
||||
struct file *hugetlb_file_setup(const char *name, size_t);
|
||||
struct file *hugetlb_file_setup(const char *name, size_t, int);
|
||||
int hugetlb_get_quota(struct address_space *mapping, long delta);
|
||||
void hugetlb_put_quota(struct address_space *mapping, long delta);
|
||||
|
||||
@@ -158,9 +159,9 @@ static inline void set_file_hugepages(struct file *file)
|
||||
}
|
||||
#else /* !CONFIG_HUGETLBFS */
|
||||
|
||||
#define is_file_hugepages(file) 0
|
||||
#define set_file_hugepages(file) BUG()
|
||||
#define hugetlb_file_setup(name,size) ERR_PTR(-ENOSYS)
|
||||
#define is_file_hugepages(file) 0
|
||||
#define set_file_hugepages(file) BUG()
|
||||
#define hugetlb_file_setup(name,size,acctflag) ERR_PTR(-ENOSYS)
|
||||
|
||||
#endif /* !CONFIG_HUGETLBFS */
|
||||
|
||||
|
@@ -48,12 +48,11 @@ extern struct fs_struct init_fs;
|
||||
.posix_timers = LIST_HEAD_INIT(sig.posix_timers), \
|
||||
.cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \
|
||||
.rlim = INIT_RLIMITS, \
|
||||
.cputime = { .totals = { \
|
||||
.utime = cputime_zero, \
|
||||
.stime = cputime_zero, \
|
||||
.sum_exec_runtime = 0, \
|
||||
.lock = __SPIN_LOCK_UNLOCKED(sig.cputime.totals.lock), \
|
||||
}, }, \
|
||||
.cputimer = { \
|
||||
.cputime = INIT_CPUTIME, \
|
||||
.running = 0, \
|
||||
.lock = __SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \
|
||||
}, \
|
||||
}
|
||||
|
||||
extern struct nsproxy init_nsproxy;
|
||||
|
@@ -1129,8 +1129,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
|
||||
unsigned long flag, unsigned long pgoff);
|
||||
extern unsigned long mmap_region(struct file *file, unsigned long addr,
|
||||
unsigned long len, unsigned long flags,
|
||||
unsigned int vm_flags, unsigned long pgoff,
|
||||
int accountable);
|
||||
unsigned int vm_flags, unsigned long pgoff);
|
||||
|
||||
static inline unsigned long do_mmap(struct file *file, unsigned long addr,
|
||||
unsigned long len, unsigned long prot,
|
||||
|
@@ -445,7 +445,6 @@ struct pacct_struct {
|
||||
* @utime: time spent in user mode, in &cputime_t units
|
||||
* @stime: time spent in kernel mode, in &cputime_t units
|
||||
* @sum_exec_runtime: total time spent on the CPU, in nanoseconds
|
||||
* @lock: lock for fields in this struct
|
||||
*
|
||||
* This structure groups together three kinds of CPU time that are
|
||||
* tracked for threads and thread groups. Most things considering
|
||||
@@ -456,23 +455,33 @@ struct task_cputime {
|
||||
cputime_t utime;
|
||||
cputime_t stime;
|
||||
unsigned long long sum_exec_runtime;
|
||||
spinlock_t lock;
|
||||
};
|
||||
/* Alternate field names when used to cache expirations. */
|
||||
#define prof_exp stime
|
||||
#define virt_exp utime
|
||||
#define sched_exp sum_exec_runtime
|
||||
|
||||
#define INIT_CPUTIME \
|
||||
(struct task_cputime) { \
|
||||
.utime = cputime_zero, \
|
||||
.stime = cputime_zero, \
|
||||
.sum_exec_runtime = 0, \
|
||||
}
|
||||
|
||||
/**
|
||||
* struct thread_group_cputime - thread group interval timer counts
|
||||
* @totals: thread group interval timers; substructure for
|
||||
* uniprocessor kernel, per-cpu for SMP kernel.
|
||||
* struct thread_group_cputimer - thread group interval timer counts
|
||||
* @cputime: thread group interval timers.
|
||||
* @running: non-zero when there are timers running and
|
||||
* @cputime receives updates.
|
||||
* @lock: lock for fields in this struct.
|
||||
*
|
||||
* This structure contains the version of task_cputime, above, that is
|
||||
* used for thread group CPU clock calculations.
|
||||
* used for thread group CPU timer calculations.
|
||||
*/
|
||||
struct thread_group_cputime {
|
||||
struct task_cputime totals;
|
||||
struct thread_group_cputimer {
|
||||
struct task_cputime cputime;
|
||||
int running;
|
||||
spinlock_t lock;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -521,10 +530,10 @@ struct signal_struct {
|
||||
cputime_t it_prof_incr, it_virt_incr;
|
||||
|
||||
/*
|
||||
* Thread group totals for process CPU clocks.
|
||||
* See thread_group_cputime(), et al, for details.
|
||||
* Thread group totals for process CPU timers.
|
||||
* See thread_group_cputimer(), et al, for details.
|
||||
*/
|
||||
struct thread_group_cputime cputime;
|
||||
struct thread_group_cputimer cputimer;
|
||||
|
||||
/* Earliest-expiration cache. */
|
||||
struct task_cputime cputime_expires;
|
||||
@@ -561,7 +570,7 @@ struct signal_struct {
|
||||
* Live threads maintain their own counters and add to these
|
||||
* in __exit_signal, except for the group leader.
|
||||
*/
|
||||
cputime_t cutime, cstime;
|
||||
cputime_t utime, stime, cutime, cstime;
|
||||
cputime_t gtime;
|
||||
cputime_t cgtime;
|
||||
unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw;
|
||||
@@ -569,6 +578,14 @@ struct signal_struct {
|
||||
unsigned long inblock, oublock, cinblock, coublock;
|
||||
struct task_io_accounting ioac;
|
||||
|
||||
/*
|
||||
* Cumulative ns of schedule CPU time fo dead threads in the
|
||||
* group, not including a zombie group leader, (This only differs
|
||||
* from jiffies_to_ns(utime + stime) if sched_clock uses something
|
||||
* other than jiffies.)
|
||||
*/
|
||||
unsigned long long sum_sched_runtime;
|
||||
|
||||
/*
|
||||
* We don't bother to synchronize most readers of this at all,
|
||||
* because there is no reader checking a limit that actually needs
|
||||
@@ -2185,27 +2202,14 @@ static inline int spin_needbreak(spinlock_t *lock)
|
||||
/*
|
||||
* Thread group CPU time accounting.
|
||||
*/
|
||||
|
||||
static inline
|
||||
void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times)
|
||||
{
|
||||
struct task_cputime *totals = &tsk->signal->cputime.totals;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&totals->lock, flags);
|
||||
*times = *totals;
|
||||
spin_unlock_irqrestore(&totals->lock, flags);
|
||||
}
|
||||
void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times);
|
||||
void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times);
|
||||
|
||||
static inline void thread_group_cputime_init(struct signal_struct *sig)
|
||||
{
|
||||
sig->cputime.totals = (struct task_cputime){
|
||||
.utime = cputime_zero,
|
||||
.stime = cputime_zero,
|
||||
.sum_exec_runtime = 0,
|
||||
};
|
||||
|
||||
spin_lock_init(&sig->cputime.totals.lock);
|
||||
sig->cputimer.cputime = INIT_CPUTIME;
|
||||
spin_lock_init(&sig->cputimer.lock);
|
||||
sig->cputimer.running = 0;
|
||||
}
|
||||
|
||||
static inline void thread_group_cputime_free(struct signal_struct *sig)
|
||||
|
@@ -95,13 +95,13 @@ struct old_linux_dirent;
|
||||
#define __SC_TEST5(t5, a5, ...) __SC_TEST(t5); __SC_TEST4(__VA_ARGS__)
|
||||
#define __SC_TEST6(t6, a6, ...) __SC_TEST(t6); __SC_TEST5(__VA_ARGS__)
|
||||
|
||||
#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void)
|
||||
#define SYSCALL_DEFINE1(...) SYSCALL_DEFINEx(1, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE2(...) SYSCALL_DEFINEx(2, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE3(...) SYSCALL_DEFINEx(3, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE4(...) SYSCALL_DEFINEx(4, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE5(...) SYSCALL_DEFINEx(5, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE6(...) SYSCALL_DEFINEx(6, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void)
|
||||
#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
|
||||
#define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
#define SYSCALL_ALIAS(alias, name) \
|
||||
@@ -121,21 +121,21 @@ struct old_linux_dirent;
|
||||
|
||||
#define SYSCALL_DEFINE(name) static inline long SYSC_##name
|
||||
#define SYSCALL_DEFINEx(x, name, ...) \
|
||||
asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__)); \
|
||||
static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__)); \
|
||||
asmlinkage long SyS_##name(__SC_LONG##x(__VA_ARGS__)) \
|
||||
asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__)); \
|
||||
static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__)); \
|
||||
asmlinkage long SyS##name(__SC_LONG##x(__VA_ARGS__)) \
|
||||
{ \
|
||||
__SC_TEST##x(__VA_ARGS__); \
|
||||
return (long) SYSC_##name(__SC_CAST##x(__VA_ARGS__)); \
|
||||
return (long) SYSC##name(__SC_CAST##x(__VA_ARGS__)); \
|
||||
} \
|
||||
SYSCALL_ALIAS(sys_##name, SyS_##name); \
|
||||
static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__))
|
||||
SYSCALL_ALIAS(sys##name, SyS##name); \
|
||||
static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__))
|
||||
|
||||
#else /* CONFIG_HAVE_SYSCALL_WRAPPERS */
|
||||
|
||||
#define SYSCALL_DEFINE(name) asmlinkage long sys_##name
|
||||
#define SYSCALL_DEFINEx(x, name, ...) \
|
||||
asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__))
|
||||
asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__))
|
||||
|
||||
#endif /* CONFIG_HAVE_SYSCALL_WRAPPERS */
|
||||
|
||||
|
Reference in New Issue
Block a user