Re: [PATCH v3 4/4] block: loop: support DIO & AIO

2015-05-10 Thread Dave Chinner
On Fri, May 08, 2015 at 12:09:04PM +0800, Ming Lei wrote: > On Fri, May 8, 2015 at 6:20 AM, Dave Chinner wrote: > > On Thu, May 07, 2015 at 08:32:39PM +0800, Ming Lei wrote: > >> On Thu, May 7, 2015 at 3:24 PM, Christoph Hellwig > >> wrote: > >> >> @@ -441,6 +500,12 @@ static void

Re: [PATCH v3 4/4] block: loop: support DIO AIO

2015-05-10 Thread Dave Chinner
On Fri, May 08, 2015 at 12:09:04PM +0800, Ming Lei wrote: On Fri, May 8, 2015 at 6:20 AM, Dave Chinner da...@fromorbit.com wrote: On Thu, May 07, 2015 at 08:32:39PM +0800, Ming Lei wrote: On Thu, May 7, 2015 at 3:24 PM, Christoph Hellwig h...@infradead.org wrote: @@ -441,6 +500,12 @@

Re: [PATCH v3 4/4] block: loop: support DIO & AIO

2015-05-07 Thread Ming Lei
Hi Dave, Thanks for your comment! On Fri, May 8, 2015 at 6:20 AM, Dave Chinner wrote: > On Thu, May 07, 2015 at 08:32:39PM +0800, Ming Lei wrote: >> On Thu, May 7, 2015 at 3:24 PM, Christoph Hellwig wrote: >> >> @@ -441,6 +500,12 @@ static void do_loop_switch(struct loop_device *lo, >> >>

Re: [PATCH v3 4/4] block: loop: support DIO & AIO

2015-05-07 Thread Dave Chinner
On Thu, May 07, 2015 at 08:32:39PM +0800, Ming Lei wrote: > On Thu, May 7, 2015 at 3:24 PM, Christoph Hellwig wrote: > >> @@ -441,6 +500,12 @@ static void do_loop_switch(struct loop_device *lo, > >> struct switch_request *p) > >> mapping->host->i_bdev->bd_block_size : PAGE_SIZE; >

Re: [PATCH v3 4/4] block: loop: support DIO & AIO

2015-05-07 Thread Ming Lei
On Thu, May 7, 2015 at 3:24 PM, Christoph Hellwig wrote: >> @@ -441,6 +500,12 @@ static void do_loop_switch(struct loop_device *lo, >> struct switch_request *p) >> mapping->host->i_bdev->bd_block_size : PAGE_SIZE; >> lo->old_gfp_mask = mapping_gfp_mask(mapping); >>

Re: [PATCH v3 4/4] block: loop: support DIO & AIO

2015-05-07 Thread Christoph Hellwig
> @@ -441,6 +500,12 @@ static void do_loop_switch(struct loop_device *lo, > struct switch_request *p) > mapping->host->i_bdev->bd_block_size : PAGE_SIZE; > lo->old_gfp_mask = mapping_gfp_mask(mapping); > mapping_set_gfp_mask(mapping, lo->old_gfp_mask &

Re: [PATCH v3 4/4] block: loop: support DIO AIO

2015-05-07 Thread Christoph Hellwig
@@ -441,6 +500,12 @@ static void do_loop_switch(struct loop_device *lo, struct switch_request *p) mapping-host-i_bdev-bd_block_size : PAGE_SIZE; lo-old_gfp_mask = mapping_gfp_mask(mapping); mapping_set_gfp_mask(mapping, lo-old_gfp_mask ~(__GFP_IO|__GFP_FS)); + +

Re: [PATCH v3 4/4] block: loop: support DIO AIO

2015-05-07 Thread Dave Chinner
On Thu, May 07, 2015 at 08:32:39PM +0800, Ming Lei wrote: On Thu, May 7, 2015 at 3:24 PM, Christoph Hellwig h...@infradead.org wrote: @@ -441,6 +500,12 @@ static void do_loop_switch(struct loop_device *lo, struct switch_request *p) mapping-host-i_bdev-bd_block_size :

Re: [PATCH v3 4/4] block: loop: support DIO AIO

2015-05-07 Thread Ming Lei
On Thu, May 7, 2015 at 3:24 PM, Christoph Hellwig h...@infradead.org wrote: @@ -441,6 +500,12 @@ static void do_loop_switch(struct loop_device *lo, struct switch_request *p) mapping-host-i_bdev-bd_block_size : PAGE_SIZE; lo-old_gfp_mask = mapping_gfp_mask(mapping);

Re: [PATCH v3 4/4] block: loop: support DIO AIO

2015-05-07 Thread Ming Lei
Hi Dave, Thanks for your comment! On Fri, May 8, 2015 at 6:20 AM, Dave Chinner da...@fromorbit.com wrote: On Thu, May 07, 2015 at 08:32:39PM +0800, Ming Lei wrote: On Thu, May 7, 2015 at 3:24 PM, Christoph Hellwig h...@infradead.org wrote: @@ -441,6 +500,12 @@ static void

[PATCH v3 4/4] block: loop: support DIO & AIO

2015-05-06 Thread Ming Lei
There are about 3 advantages to use direct I/O and AIO on read/write loop's backing file: 1) double cache can be avoided, then memory usage gets decreased a lot 2) not like user space direct I/O, there isn't cost of pinning pages 3) avoid context switch for obtaining good throughput - in

[PATCH v3 4/4] block: loop: support DIO AIO

2015-05-06 Thread Ming Lei
There are about 3 advantages to use direct I/O and AIO on read/write loop's backing file: 1) double cache can be avoided, then memory usage gets decreased a lot 2) not like user space direct I/O, there isn't cost of pinning pages 3) avoid context switch for obtaining good throughput - in