Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

mm/asyncd.c File Reference

#include <linux/mm.h>
#include <linux/malloc.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/kernel_stat.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/stat.h>
#include <linux/swap.h>
#include <linux/fs.h>
#include <linux/config.h>
#include <linux/interrupt.h>
#include <asm/dma.h>
#include <asm/system.h>
#include <asm/segment.h>
#include <asm/bitops.h>
#include <asm/pgtable.h>

Include dependency graph for mm/asyncd.c:

Go to the source code of this file.

Defines

#define DEBUG   0
#define WRITE_LIMIT   100
#define LOOP_LIMIT   200

Functions

static void add_to_async_queue (int taskid, struct mm_struct *mm, unsigned long address, int write, void(*callback)(int, unsigned long, int, int))
void async_fault (unsigned long address, int write, int taskid, void(*callback)(int, unsigned long, int, int))
static int fault_in_page (int taskid, struct vm_area_struct *vma, unsigned address, int write)
static void run_async_queue (void)
int asyncd (void *unused)

Variables

struct {
   int   faults
   int   read
   int   write
   int   success
   int   failure
   int   errors
stats
static struct wait_queue * asyncd_wait = NULL
static struct async_jobasync_queue = NULL
static struct async_jobasync_queue_end = NULL


Define Documentation

#define DEBUG   0
 

Definition at line 30 of file mm/asyncd.c.

#define LOOP_LIMIT   200
 

Definition at line 33 of file mm/asyncd.c.

Referenced by fault_in_page().

#define WRITE_LIMIT   100
 

Definition at line 32 of file mm/asyncd.c.

Referenced by fault_in_page().


Function Documentation

static void add_to_async_queue int  taskid,
struct mm_struct *  mm,
unsigned long  address,
int  write,
void(*)(int, unsigned long, int, int)  callback
[static]
 

Definition at line 56 of file mm/asyncd.c.

References a, kmalloc(), async_job::next, NULL, printk, and stats.

Referenced by async_fault().

Here is the call graph for this function:

void async_fault unsigned long  address,
int  write,
int  taskid,
void(*)(int, unsigned long, int, int)  callback
 

Definition at line 91 of file mm/asyncd.c.

References add_to_async_queue(), asyncd_wait, mark_bh, printk, stats, task, and TQUEUE_BH.

Referenced by msc_read_fault(), and msc_write_fault().

Here is the call graph for this function:

int asyncd void *  unused  ) 
 

Definition at line 242 of file mm/asyncd.c.

References asyncd_wait, bif_add_debug_key(), cli, current, flush_signals(), interruptible_sleep_on(), printk, restore_flags, run_async_queue(), save_flags, SCHED_FIFO, sigfillset, spin_lock_irq, spin_unlock_irq, and sprintf().

Referenced by do_basic_setup().

Here is the call graph for this function:

static int fault_in_page int  taskid,
struct vm_area_struct *  vma,
unsigned  address,
int  write
[static]
 

Definition at line 108 of file mm/asyncd.c.

References fault, flush_tlb_page, force_sig(), handle_mm_fault(), last_task, LOOP_LIMIT, pgd_offset, pmd_alloc, printk, pte_alloc, pte_mkdirty, pte_mkyoung, pte_present, pte_write, send_sig(), set_pte, SIGKILL, SIGSEGV, stats, SUBSIG_NOMAPPING, task, and WRITE_LIMIT.

Referenced by run_async_queue().

Here is the call graph for this function:

static void run_async_queue void   )  [static]
 

Definition at line 197 of file mm/asyncd.c.

References a, async_job::address, async_job::callback, cli, down(), fault_in_page(), find_vma(), kfree_s(), async_job::mm, async_job::next, printk, restore_flags, ret, save_flags, async_job::taskid, up, and async_job::write.

Referenced by asyncd().

Here is the call graph for this function:


Variable Documentation

struct async_job* async_queue = NULL [static]
 

Definition at line 53 of file mm/asyncd.c.

Referenced by ixj_kill_fasync().

struct async_job* async_queue_end = NULL [static]
 

Definition at line 54 of file mm/asyncd.c.

struct wait_queue* asyncd_wait = NULL [static]
 

Definition at line 42 of file mm/asyncd.c.

Referenced by async_fault(), and asyncd().

int errors
 

Definition at line 36 of file mm/asyncd.c.

int failure
 

Definition at line 36 of file mm/asyncd.c.

Referenced by cbq_change_class(), download_code(), ext2_find_entry(), fib_create_info(), filemap_nopage(), ipmr_new_tunnel(), netlink_broadcast(), nfs_read_super(), nfsd_svc(), route4_classify(), sock_alloc_send_skb(), tcf_police_locate(), tcp_v6_connect(), and write_sunos_user().

int faults
 

Definition at line 36 of file mm/asyncd.c.

Referenced by sys_idle().

int read
 

Definition at line 36 of file mm/asyncd.c.

Referenced by _copyin(), back_lines(), block_read(), cap_info_read(), cmd_info_in(), copy(), copy_image(), dialog_textbox(), do_mod_firmware_load(), do_read(), get_line(), hdr_read(), hfs_do_read(), hfs_file_read(), hid_read_report(), lcs_alloc_drvr_globals(), lcs_detect(), lcs_displayinfo(), lcs_gethwinfo(), lcs_handle_irq(), lcs_lancmd(), lcs_open(), lcs_rxerror(), lcs_rxpacket(), lcs_usage_free_drvr_globals(), main(), minix_open(), pipe_read(), read_core(), read_kmem(), read_mem(), read_profile(), readchar(), saveRead(), sdla_xfer(), sys_pread(), sys_read(), sysv_file_read(), vcs_read(), wait_drv_ready(), write_asm_data(), and write_bootsect().

struct { ... } stats [static]
 

int success
 

Definition at line 36 of file mm/asyncd.c.

Referenced by __initfunc(), default_erp_postaction(), do_generic_file_read(), eata_pio_reset(), eata_reset(), filemap_nopage(), init_dev(), ntfs_search_bits(), ov6xx0_configure(), ov76xx_configure(), prom_apply_generic_ranges(), sbp_data(), sdla_receive(), smb_receive_trans2(), tcp_v4_get_port(), tcp_v6_get_port(), write_sunos_user(), and xd_waitport().

int write
 

Definition at line 36 of file mm/asyncd.c.