Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 169039
b: refs/heads/master
c: 0d9ccfe
h: refs/heads/master
i:
  169037: 25e1b60
  169035: b5daf28
  169031: e8d2c89
  169023: 8ce2a5f
v: v3
  • Loading branch information
Linus Torvalds committed Dec 1, 2009
1 parent 2c178ca commit 956c8dd
Show file tree
Hide file tree
Showing 34 changed files with 104 additions and 77 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f133f22dd6f413bdf71ebf7e00ce441d98ac7c87
refs/heads/master: 0d9ccfe1b5321b8d27117817b9ae4d3288c8b015
4 changes: 2 additions & 2 deletions trunk/Documentation/slow-work.txt
Original file line number Diff line number Diff line change
Expand Up @@ -279,9 +279,9 @@ The slow-work thread pool has a number of configurables:
VIEWING EXECUTING AND QUEUED ITEMS
==================================

If CONFIG_SLOW_WORK_PROC is enabled, a proc file is made available:
If CONFIG_SLOW_WORK_DEBUG is enabled, a debugfs file is made available:

/proc/slow_work_rq
/sys/kernel/debug/slow_work/runqueue

through which the list of work items being executed and the queues of items to
be executed may be viewed. The owner of a work item is given the chance to
Expand Down
27 changes: 15 additions & 12 deletions trunk/arch/alpha/include/asm/thread_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,21 +61,24 @@ register struct thread_info *__current_thread_info __asm__("$8");
/*
* Thread information flags:
* - these are process state flags and used from assembly
* - pending work-to-be-done flags come first to fit in and immediate operand.
* - pending work-to-be-done flags come first and must be assigned to be
* within bits 0 to 7 to fit in and immediate operand.
* - ALPHA_UAC_SHIFT below must be kept consistent with the unaligned
* control flags.
*
* TIF_SYSCALL_TRACE is known to be 0 via blbs.
*/
#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
#define TIF_SIGPENDING 1 /* signal pending */
#define TIF_NEED_RESCHED 2 /* rescheduling necessary */
#define TIF_POLLING_NRFLAG 3 /* poll_idle is polling NEED_RESCHED */
#define TIF_DIE_IF_KERNEL 4 /* dik recursion lock */
#define TIF_UAC_NOPRINT 5 /* see sysinfo.h */
#define TIF_UAC_NOFIX 6
#define TIF_UAC_SIGBUS 7
#define TIF_MEMDIE 8
#define TIF_RESTORE_SIGMASK 9 /* restore signal mask in do_signal */
#define TIF_NOTIFY_RESUME 10 /* callback before returning to user */
#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */
#define TIF_SIGPENDING 2 /* signal pending */
#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
#define TIF_POLLING_NRFLAG 8 /* poll_idle is polling NEED_RESCHED */
#define TIF_DIE_IF_KERNEL 9 /* dik recursion lock */
#define TIF_UAC_NOPRINT 10 /* see sysinfo.h */
#define TIF_UAC_NOFIX 11
#define TIF_UAC_SIGBUS 12
#define TIF_MEMDIE 13
#define TIF_RESTORE_SIGMASK 14 /* restore signal mask in do_signal */
#define TIF_FREEZE 16 /* is freezing for suspend */

#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
Expand All @@ -94,7 +97,7 @@ register struct thread_info *__current_thread_info __asm__("$8");
#define _TIF_ALLWORK_MASK (_TIF_WORK_MASK \
| _TIF_SYSCALL_TRACE)

#define ALPHA_UAC_SHIFT 6
#define ALPHA_UAC_SHIFT 10
#define ALPHA_UAC_MASK (1 << TIF_UAC_NOPRINT | 1 << TIF_UAC_NOFIX | \
1 << TIF_UAC_SIGBUS)

Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/alpha/kernel/core_marvel.c
Original file line number Diff line number Diff line change
Expand Up @@ -1103,6 +1103,8 @@ marvel_agp_info(void)
* Allocate the info structure.
*/
agp = kmalloc(sizeof(*agp), GFP_KERNEL);
if (!agp)
return NULL;

/*
* Fill it in.
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/alpha/kernel/core_titan.c
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,8 @@ titan_agp_info(void)
* Allocate the info structure.
*/
agp = kmalloc(sizeof(*agp), GFP_KERNEL);
if (!agp)
return NULL;

/*
* Fill it in.
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ show_interrupts(struct seq_file *p, void *v)
for_each_online_cpu(j)
seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j));
#endif
seq_printf(p, " %14s", irq_desc[irq].chip->typename);
seq_printf(p, " %14s", irq_desc[irq].chip->name);
seq_printf(p, " %c%s",
(action->flags & IRQF_DISABLED)?'+':' ',
action->name);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/irq_alpha.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ struct irqaction timer_irqaction = {
};

static struct irq_chip rtc_irq_type = {
.typename = "RTC",
.name = "RTC",
.startup = rtc_startup,
.shutdown = rtc_enable_disable,
.enable = rtc_enable_disable,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/irq_i8259.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ i8259a_end_irq(unsigned int irq)
}

struct irq_chip i8259a_irq_type = {
.typename = "XT-PIC",
.name = "XT-PIC",
.startup = i8259a_startup_irq,
.shutdown = i8259a_disable_irq,
.enable = i8259a_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/irq_pyxis.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ pyxis_mask_and_ack_irq(unsigned int irq)
}

static struct irq_chip pyxis_irq_type = {
.typename = "PYXIS",
.name = "PYXIS",
.startup = pyxis_startup_irq,
.shutdown = pyxis_disable_irq,
.enable = pyxis_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/irq_srm.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ srm_end_irq(unsigned int irq)

/* Handle interrupts from the SRM, assuming no additional weirdness. */
static struct irq_chip srm_irq_type = {
.typename = "SRM",
.name = "SRM",
.startup = srm_startup_irq,
.shutdown = srm_disable_irq,
.enable = srm_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_alcor.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ alcor_end_irq(unsigned int irq)
}

static struct irq_chip alcor_irq_type = {
.typename = "ALCOR",
.name = "ALCOR",
.startup = alcor_startup_irq,
.shutdown = alcor_disable_irq,
.enable = alcor_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_cabriolet.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ cabriolet_end_irq(unsigned int irq)
}

static struct irq_chip cabriolet_irq_type = {
.typename = "CABRIOLET",
.name = "CABRIOLET",
.startup = cabriolet_startup_irq,
.shutdown = cabriolet_disable_irq,
.enable = cabriolet_enable_irq,
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/alpha/kernel/sys_dp264.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ clipper_set_affinity(unsigned int irq, const struct cpumask *affinity)
}

static struct irq_chip dp264_irq_type = {
.typename = "DP264",
.name = "DP264",
.startup = dp264_startup_irq,
.shutdown = dp264_disable_irq,
.enable = dp264_enable_irq,
Expand All @@ -210,7 +210,7 @@ static struct irq_chip dp264_irq_type = {
};

static struct irq_chip clipper_irq_type = {
.typename = "CLIPPER",
.name = "CLIPPER",
.startup = clipper_startup_irq,
.shutdown = clipper_disable_irq,
.enable = clipper_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_eb64p.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ eb64p_end_irq(unsigned int irq)
}

static struct irq_chip eb64p_irq_type = {
.typename = "EB64P",
.name = "EB64P",
.startup = eb64p_startup_irq,
.shutdown = eb64p_disable_irq,
.enable = eb64p_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_eiger.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ eiger_end_irq(unsigned int irq)
}

static struct irq_chip eiger_irq_type = {
.typename = "EIGER",
.name = "EIGER",
.startup = eiger_startup_irq,
.shutdown = eiger_disable_irq,
.enable = eiger_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_jensen.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ jensen_local_end(unsigned int irq)
}

static struct irq_chip jensen_local_irq_type = {
.typename = "LOCAL",
.name = "LOCAL",
.startup = jensen_local_startup,
.shutdown = jensen_local_shutdown,
.enable = jensen_local_enable,
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/alpha/kernel/sys_marvel.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ marvel_irq_noop_return(unsigned int irq)
}

static struct irq_chip marvel_legacy_irq_type = {
.typename = "LEGACY",
.name = "LEGACY",
.startup = marvel_irq_noop_return,
.shutdown = marvel_irq_noop,
.enable = marvel_irq_noop,
Expand All @@ -180,7 +180,7 @@ static struct irq_chip marvel_legacy_irq_type = {
};

static struct irq_chip io7_lsi_irq_type = {
.typename = "LSI",
.name = "LSI",
.startup = io7_startup_irq,
.shutdown = io7_disable_irq,
.enable = io7_enable_irq,
Expand All @@ -190,7 +190,7 @@ static struct irq_chip io7_lsi_irq_type = {
};

static struct irq_chip io7_msi_irq_type = {
.typename = "MSI",
.name = "MSI",
.startup = io7_startup_irq,
.shutdown = io7_disable_irq,
.enable = io7_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_mikasa.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ mikasa_end_irq(unsigned int irq)
}

static struct irq_chip mikasa_irq_type = {
.typename = "MIKASA",
.name = "MIKASA",
.startup = mikasa_startup_irq,
.shutdown = mikasa_disable_irq,
.enable = mikasa_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_noritake.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ noritake_end_irq(unsigned int irq)
}

static struct irq_chip noritake_irq_type = {
.typename = "NORITAKE",
.name = "NORITAKE",
.startup = noritake_startup_irq,
.shutdown = noritake_disable_irq,
.enable = noritake_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_rawhide.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ rawhide_end_irq(unsigned int irq)
}

static struct irq_chip rawhide_irq_type = {
.typename = "RAWHIDE",
.name = "RAWHIDE",
.startup = rawhide_startup_irq,
.shutdown = rawhide_disable_irq,
.enable = rawhide_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_ruffian.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ ruffian_init_irq(void)
common_init_isa_dma();
}

#define RUFFIAN_LATCH ((PIT_TICK_RATE + HZ / 2) / HZ)
#define RUFFIAN_LATCH DIV_ROUND_CLOSEST(PIT_TICK_RATE, HZ)

static void __init
ruffian_init_rtc(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_rx164.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ rx164_end_irq(unsigned int irq)
}

static struct irq_chip rx164_irq_type = {
.typename = "RX164",
.name = "RX164",
.startup = rx164_startup_irq,
.shutdown = rx164_disable_irq,
.enable = rx164_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_sable.c
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@ sable_lynx_mask_and_ack_irq(unsigned int irq)
}

static struct irq_chip sable_lynx_irq_type = {
.typename = "SABLE/LYNX",
.name = "SABLE/LYNX",
.startup = sable_lynx_startup_irq,
.shutdown = sable_lynx_disable_irq,
.enable = sable_lynx_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_takara.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ takara_end_irq(unsigned int irq)
}

static struct irq_chip takara_irq_type = {
.typename = "TAKARA",
.name = "TAKARA",
.startup = takara_startup_irq,
.shutdown = takara_disable_irq,
.enable = takara_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_titan.c
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ init_titan_irqs(struct irq_chip * ops, int imin, int imax)
}

static struct irq_chip titan_irq_type = {
.typename = "TITAN",
.name = "TITAN",
.startup = titan_startup_irq,
.shutdown = titan_disable_irq,
.enable = titan_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/sys_wildfire.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ wildfire_end_irq(unsigned int irq)
}

static struct irq_chip wildfire_irq_type = {
.typename = "WILDFIRE",
.name = "WILDFIRE",
.startup = wildfire_startup_irq,
.shutdown = wildfire_disable_irq,
.enable = wildfire_enable_irq,
Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/9p/cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ int __v9fs_fscache_release_page(struct page *page, gfp_t gfp)

BUG_ON(!vcookie->fscache);

return fscache_maybe_release_page(vnode->cache, page, gfp);
return fscache_maybe_release_page(vcookie->fscache, page, gfp);
}

void __v9fs_fscache_invalidate_page(struct page *page)
Expand Down
2 changes: 2 additions & 0 deletions trunk/fs/cachefiles/rdwr.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

#include <linux/mount.h>
#include <linux/file.h>
#include <linux/ima.h>
#include "internal.h"

/*
Expand Down Expand Up @@ -922,6 +923,7 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page)
if (IS_ERR(file)) {
ret = PTR_ERR(file);
} else {
ima_counts_get(file);
ret = -EIO;
if (file->f_op->write) {
pos = (loff_t) page->index << PAGE_SHIFT;
Expand Down
8 changes: 4 additions & 4 deletions trunk/include/linux/slow-work.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <linux/timer.h>

struct slow_work;
#ifdef CONFIG_SLOW_WORK_PROC
#ifdef CONFIG_SLOW_WORK_DEBUG
struct seq_file;
#endif

Expand All @@ -42,8 +42,8 @@ struct slow_work_ops {
/* execute a work item */
void (*execute)(struct slow_work *work);

#ifdef CONFIG_SLOW_WORK_PROC
/* describe a work item for /proc */
#ifdef CONFIG_SLOW_WORK_DEBUG
/* describe a work item for debugfs */
void (*desc)(struct slow_work *work, struct seq_file *m);
#endif
};
Expand All @@ -64,7 +64,7 @@ struct slow_work {
#define SLOW_WORK_DELAYED 5 /* item is struct delayed_slow_work with active timer */
const struct slow_work_ops *ops; /* operations table for this item */
struct list_head link; /* link in queue */
#ifdef CONFIG_SLOW_WORK_PROC
#ifdef CONFIG_SLOW_WORK_DEBUG
struct timespec mark; /* jiffies at which queued or exec begun */
#endif
};
Expand Down
8 changes: 4 additions & 4 deletions trunk/init/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1098,12 +1098,12 @@ config SLOW_WORK

See Documentation/slow-work.txt.

config SLOW_WORK_PROC
bool "Slow work debugging through /proc"
config SLOW_WORK_DEBUG
bool "Slow work debugging through debugfs"
default n
depends on SLOW_WORK && PROC_FS
depends on SLOW_WORK && DEBUG_FS
help
Display the contents of the slow work run queue through /proc,
Display the contents of the slow work run queue through debugfs,
including items currently executing.

See Documentation/slow-work.txt.
Expand Down
2 changes: 1 addition & 1 deletion trunk/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ obj-$(CONFIG_X86_DS) += trace/
obj-$(CONFIG_RING_BUFFER) += trace/
obj-$(CONFIG_SMP) += sched_cpupri.o
obj-$(CONFIG_SLOW_WORK) += slow-work.o
obj-$(CONFIG_SLOW_WORK_PROC) += slow-work-proc.o
obj-$(CONFIG_SLOW_WORK_DEBUG) += slow-work-debugfs.o
obj-$(CONFIG_PERF_EVENTS) += perf_event.o

ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER),y)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ static void slow_work_print_mark(struct seq_file *m, struct slow_work *work)
}

/*
* Describe a slow work item for /proc
* Describe a slow work item for debugfs
*/
static int slow_work_runqueue_show(struct seq_file *m, void *v)
{
Expand Down Expand Up @@ -211,7 +211,7 @@ static const struct seq_operations slow_work_runqueue_ops = {
};

/*
* open "/proc/slow_work_rq" to list queue contents
* open "/sys/kernel/debug/slow_work/runqueue" to list queue contents
*/
static int slow_work_runqueue_open(struct inode *inode, struct file *file)
{
Expand Down
Loading

0 comments on commit 956c8dd

Please sign in to comment.