Loading Documentation/DocBook/tracepoint.tmpl +13 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,15 @@ </address> </affiliation> </author> <author> <firstname>William</firstname> <surname>Cohen</surname> <affiliation> <address> <email>wcohen@redhat.com</email> </address> </affiliation> </author> </authorgroup> <legalnotice> Loading Loading @@ -91,4 +100,8 @@ !Iinclude/trace/events/signal.h </chapter> <chapter id="block"> <title>Block IO</title> !Iinclude/trace/events/block.h </chapter> </book> Documentation/block/biodoc.txt +2 −2 Original line number Diff line number Diff line Loading @@ -1162,8 +1162,8 @@ where a driver received a request ala this before: As mentioned, there is no virtual mapping of a bio. For DMA, this is not a problem as the driver probably never will need a virtual mapping. Instead it needs a bus mapping (pci_map_page for a single segment or use blk_rq_map_sg for scatter gather) to be able to ship it to the driver. For Instead it needs a bus mapping (dma_map_page for a single segment or use dma_map_sg for scatter gather) to be able to ship it to the driver. For PIO drivers (or drivers that need to revert to PIO transfer once in a while (IDE for example)), where the CPU is doing the actual data transfer a virtual mapping is needed. If the driver supports highmem I/O, Loading block/Kconfig +2 −1 Original line number Diff line number Diff line Loading @@ -78,8 +78,9 @@ config BLK_DEV_INTEGRITY Protection. If in doubt, say N. config BLK_CGROUP tristate tristate "Block cgroup support" depends on CGROUPS depends on CFQ_GROUP_IOSCHED default n ---help--- Generic block IO controller cgroup interface. This is the common Loading block/blk-settings.c +1 −10 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ #include <linux/blkdev.h> #include <linux/bootmem.h> /* for max_pfn/max_low_pfn */ #include <linux/gcd.h> #include <linux/lcm.h> #include <linux/jiffies.h> #include "blk.h" Loading Loading @@ -461,16 +462,6 @@ void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b) } EXPORT_SYMBOL(blk_queue_stack_limits); static unsigned int lcm(unsigned int a, unsigned int b) { if (a && b) return (a * b) / gcd(a, b); else if (b) return b; return a; } /** * blk_stack_limits - adjust queue_limits for stacked devices * @t: the stacking driver limits (top device) Loading block/blk-sysfs.c +25 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,19 @@ static ssize_t queue_max_sectors_show(struct request_queue *q, char *page) return queue_var_show(max_sectors_kb, (page)); } static ssize_t queue_max_segments_show(struct request_queue *q, char *page) { return queue_var_show(queue_max_segments(q), (page)); } static ssize_t queue_max_segment_size_show(struct request_queue *q, char *page) { if (test_bit(QUEUE_FLAG_CLUSTER, &q->queue_flags)) return queue_var_show(queue_max_segment_size(q), (page)); return queue_var_show(PAGE_CACHE_SIZE, (page)); } static ssize_t queue_logical_block_size_show(struct request_queue *q, char *page) { return queue_var_show(queue_logical_block_size(q), page); Loading Loading @@ -280,6 +293,16 @@ static struct queue_sysfs_entry queue_max_hw_sectors_entry = { .show = queue_max_hw_sectors_show, }; static struct queue_sysfs_entry queue_max_segments_entry = { .attr = {.name = "max_segments", .mode = S_IRUGO }, .show = queue_max_segments_show, }; static struct queue_sysfs_entry queue_max_segment_size_entry = { .attr = {.name = "max_segment_size", .mode = S_IRUGO }, .show = queue_max_segment_size_show, }; static struct queue_sysfs_entry queue_iosched_entry = { .attr = {.name = "scheduler", .mode = S_IRUGO | S_IWUSR }, .show = elv_iosched_show, Loading Loading @@ -355,6 +378,8 @@ static struct attribute *default_attrs[] = { &queue_ra_entry.attr, &queue_max_hw_sectors_entry.attr, &queue_max_sectors_entry.attr, &queue_max_segments_entry.attr, &queue_max_segment_size_entry.attr, &queue_iosched_entry.attr, &queue_hw_sector_size_entry.attr, &queue_logical_block_size_entry.attr, Loading Loading
Documentation/DocBook/tracepoint.tmpl +13 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,15 @@ </address> </affiliation> </author> <author> <firstname>William</firstname> <surname>Cohen</surname> <affiliation> <address> <email>wcohen@redhat.com</email> </address> </affiliation> </author> </authorgroup> <legalnotice> Loading Loading @@ -91,4 +100,8 @@ !Iinclude/trace/events/signal.h </chapter> <chapter id="block"> <title>Block IO</title> !Iinclude/trace/events/block.h </chapter> </book>
Documentation/block/biodoc.txt +2 −2 Original line number Diff line number Diff line Loading @@ -1162,8 +1162,8 @@ where a driver received a request ala this before: As mentioned, there is no virtual mapping of a bio. For DMA, this is not a problem as the driver probably never will need a virtual mapping. Instead it needs a bus mapping (pci_map_page for a single segment or use blk_rq_map_sg for scatter gather) to be able to ship it to the driver. For Instead it needs a bus mapping (dma_map_page for a single segment or use dma_map_sg for scatter gather) to be able to ship it to the driver. For PIO drivers (or drivers that need to revert to PIO transfer once in a while (IDE for example)), where the CPU is doing the actual data transfer a virtual mapping is needed. If the driver supports highmem I/O, Loading
block/Kconfig +2 −1 Original line number Diff line number Diff line Loading @@ -78,8 +78,9 @@ config BLK_DEV_INTEGRITY Protection. If in doubt, say N. config BLK_CGROUP tristate tristate "Block cgroup support" depends on CGROUPS depends on CFQ_GROUP_IOSCHED default n ---help--- Generic block IO controller cgroup interface. This is the common Loading
block/blk-settings.c +1 −10 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ #include <linux/blkdev.h> #include <linux/bootmem.h> /* for max_pfn/max_low_pfn */ #include <linux/gcd.h> #include <linux/lcm.h> #include <linux/jiffies.h> #include "blk.h" Loading Loading @@ -461,16 +462,6 @@ void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b) } EXPORT_SYMBOL(blk_queue_stack_limits); static unsigned int lcm(unsigned int a, unsigned int b) { if (a && b) return (a * b) / gcd(a, b); else if (b) return b; return a; } /** * blk_stack_limits - adjust queue_limits for stacked devices * @t: the stacking driver limits (top device) Loading
block/blk-sysfs.c +25 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,19 @@ static ssize_t queue_max_sectors_show(struct request_queue *q, char *page) return queue_var_show(max_sectors_kb, (page)); } static ssize_t queue_max_segments_show(struct request_queue *q, char *page) { return queue_var_show(queue_max_segments(q), (page)); } static ssize_t queue_max_segment_size_show(struct request_queue *q, char *page) { if (test_bit(QUEUE_FLAG_CLUSTER, &q->queue_flags)) return queue_var_show(queue_max_segment_size(q), (page)); return queue_var_show(PAGE_CACHE_SIZE, (page)); } static ssize_t queue_logical_block_size_show(struct request_queue *q, char *page) { return queue_var_show(queue_logical_block_size(q), page); Loading Loading @@ -280,6 +293,16 @@ static struct queue_sysfs_entry queue_max_hw_sectors_entry = { .show = queue_max_hw_sectors_show, }; static struct queue_sysfs_entry queue_max_segments_entry = { .attr = {.name = "max_segments", .mode = S_IRUGO }, .show = queue_max_segments_show, }; static struct queue_sysfs_entry queue_max_segment_size_entry = { .attr = {.name = "max_segment_size", .mode = S_IRUGO }, .show = queue_max_segment_size_show, }; static struct queue_sysfs_entry queue_iosched_entry = { .attr = {.name = "scheduler", .mode = S_IRUGO | S_IWUSR }, .show = elv_iosched_show, Loading Loading @@ -355,6 +378,8 @@ static struct attribute *default_attrs[] = { &queue_ra_entry.attr, &queue_max_hw_sectors_entry.attr, &queue_max_sectors_entry.attr, &queue_max_segments_entry.attr, &queue_max_segment_size_entry.attr, &queue_iosched_entry.attr, &queue_hw_sector_size_entry.attr, &queue_logical_block_size_entry.attr, Loading