WorkStruct: Separate delayable and non-delayable events.
Separate delayable work items from non-delayable work items be splitting them
into a separate structure (delayed_work), which incorporates a work_struct and
the timer_list removed from work_struct.
The work_struct struct is huge, and this limits it's usefulness. On a 64-bit
architecture it's nearly 100 bytes in size. This reduces that by half for the
non-delayable type of event.
Signed-Off-By:
David Howells <dhowells@redhat.com>
Showing
- arch/x86_64/kernel/mce.c 1 addition, 1 deletionarch/x86_64/kernel/mce.c
- drivers/ata/libata-core.c 4 additions, 7 deletionsdrivers/ata/libata-core.c
- drivers/ata/libata-eh.c 1 addition, 1 deletiondrivers/ata/libata-eh.c
- drivers/char/random.c 1 addition, 1 deletiondrivers/char/random.c
- drivers/char/tty_io.c 1 addition, 1 deletiondrivers/char/tty_io.c
- fs/aio.c 2 additions, 2 deletionsfs/aio.c
- fs/nfs/client.c 1 addition, 1 deletionfs/nfs/client.c
- fs/nfs/namespace.c 2 additions, 1 deletionfs/nfs/namespace.c
- include/linux/aio.h 1 addition, 1 deletioninclude/linux/aio.h
- include/linux/kbd_kern.h 1 addition, 1 deletioninclude/linux/kbd_kern.h
- include/linux/libata.h 2 additions, 2 deletionsinclude/linux/libata.h
- include/linux/nfs_fs_sb.h 1 addition, 1 deletioninclude/linux/nfs_fs_sb.h
- include/linux/sunrpc/rpc_pipe_fs.h 1 addition, 1 deletioninclude/linux/sunrpc/rpc_pipe_fs.h
- include/linux/sunrpc/xprt.h 1 addition, 1 deletioninclude/linux/sunrpc/xprt.h
- include/linux/tty.h 1 addition, 1 deletioninclude/linux/tty.h
- include/linux/workqueue.h 32 additions, 12 deletionsinclude/linux/workqueue.h
- kernel/workqueue.c 28 additions, 23 deletionskernel/workqueue.c
- mm/slab.c 4 additions, 4 deletionsmm/slab.c
- net/core/link_watch.c 4 additions, 5 deletionsnet/core/link_watch.c
- net/sunrpc/cache.c 2 additions, 2 deletionsnet/sunrpc/cache.c
Loading
Please register or sign in to comment