All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20160930160216.GA13637@hgst.com>

diff --git a/a/1.txt b/N1/1.txt
index 952a644..b386c54 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,78 +1,65 @@
-SGVsbG8gVGVqdW4sCgpUaGUgMDkvMjkvMjAxNiAxMDo0MCwgVGVqdW4gSGVvIHdyb3RlOgo+IEhl
-bGxvLAo+IAo+IE9uIFR1ZSwgU2VwIDI3LCAyMDE2IGF0IDExOjE0OjU0QU0gLTA3MDAsIEFkYW0g
-TWFuemFuYXJlcyB3cm90ZToKPiA+IFBhdGNoIGFkZHMgYXNzb2NpYXRpb24gYmV0d2VlbiBpb2Nv
-bnRleHQgYW5kIGEgcmVxdWVzdC4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogQWRhbSBNYW56YW5h
-cmVzIDxhZGFtLm1hbnphbmFyZXNAaGdzdC5jb20+Cj4gCj4gQ2FuIHlvdSBwbGVhc2UgZGVzY3Jp
-YmUgaG93IHRoaXMgbWF5IGltcGFjdCBleGlzdGluZyB1c2FnZXM/Cj4KSSdsbCBzdGFydCB3aXRo
-IHRoZSBjaGFuZ2VzIEkgbWFkZSBhbmQgd29yayBteSB3YXkgdGhyb3VnaCBhIGdyZXAgb2YgICAg
-ICAgICAgICAKaW9wcmlvLiBQbGVhc2UgYWRkIG9yIGNvcnJlY3QgYW55IG9mIHRoZSBhc3N1bXB0
-aW9ucyBJIGhhdmUgbWFkZS4gICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
-SW4gYmxrLWNvcmUsIHRoZSBiZWhhdmlvciBiZWZvcmUgdGhlIHBhdGNoIGlzIHRvIGdldCB0aGUg
-aW9wcmlvIGZvciB0aGUgcmVxdWVzdCAKZnJvbSB0aGUgYmlvLiBUaGUgb25seSByZWZlcmVuY2Vz
-IEkgZm91bmQgdG8gYmlvX3NldF9wcmlvIGFyZSBpbiBiY2FjaGUuIEJvdGggICAKb2YgdGhlc2Ug
-cmVmZXJlbmNlcyBhcmUgaW4gbG93IHByaW9yaXR5IG9wZXJhdGlvbnMgKGdjLCBiZyB3cml0ZWJh
-Y2spIHNvIHRoZSAgICAKaW9wcmlvcml0eSBvZiB0aGUgYmlvIGlzIHNldCB0byBJT19QUklPQ0xB
-U1NfSURMRSBpbiB0aGVzZSBjYXNlcy4gICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAKQSBrZXJuZWwgdGhyZWFkIGlzIHVzZWQgdG8gc3VibWl0IHRoZXNlIGJpb3Mgc28gdGhl
-IGlvcHJpbyBpcyBnb2luZyB0byBjb21lICAgICAKZnJvbSB0aGUgY3VycmVudCBydW5uaW5nIHRh
-c2sgaWYgdGhlIGlvY29udGV4dCBleGlzdHMuIFRoaXMgY291bGQgYmUgYSBwcm9ibGVtICAKaWYg
-d2UgaGF2ZSBzZXQgYSB0YXNrIHdpdGggaGlnaCBwcmlvcml0eSBhbmQgc29tZSBiYWNrZ3JvdW5k
-IHdvcmsgZW5kcyB1cCAgICAgICAKZ2V0dGluZyBnZW5lcmF0ZWQgaW4gdGhlIGJjYWNoZSBsYXll
-ci4gSSBwcm9wb3NlIHRoYXQgd2UgY2hlY2sgaWYgdGhlICAgICAgICAgICAKaW9wcmlvcml0eSBv
-ZiB0aGUgYmlvIGlzIHZhbGlkIGFuZCBpZiBzbywgdGhlbiB3ZSBrZWVwIHRoZSBwcmlvcmlydHkg
-ZnJvbSB0aGUgICAKYmlvLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAKVGhlIHNlY29uZCBhcmVhIHRoYXQgSSBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSBpcyBpbiB0
-aGUgbWVyZ2luZyBjb2RlIGNvZGUgaW4gICAKYmxrLWNvcmUgd2hlbiBhIGJpbyBpcyBxdWV1ZWQu
-IElmIHRoZXJlIGlzIGEgcmVxdWVzdCB0aGF0IGlzIG1lcmdlYWJsZSB0aGVuICAgICAKdGhlIG1l
-cmdlIGNvZGUgdGFrZXMgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgb2YgdGhlIGJpbyBhbmQgdGhlIHJl
-cXVlc3QuIFRoaXMgICAgICAKY291bGQgd2lwZSBvdXQgdGhlIHZhbHVlcyBzZXQgYnkgYmlvX3Nl
-dF9wcmlvLiBJIHRoaW5rIGl0IHdvdWxkIGJlICAgICAgICAgICAgICAKYmVzdCB0byBzZXQgdGhl
-IHJlcXVlc3QgYXMgbm9uIG1lcmdlYWJsZSB3aGVuIHdlIHNlZSB0aGF0IGl0IGlzIGEgaGlnaCAg
-ICAgICAgICAKcHJpb3JpdHkgSU8gcmVxdWVzdC4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
-VGhlIHRoaXJkIGFyZWEgdGhhdCBpcyBvZiBpbnRlcmVzdCBpcyBpbiB0aGUgQ0ZRIHNjaGVkdWxl
-ciBhbmQgdGhlIGlvcHJpbyBpcyAgICAKb25seSB1c2VkIGluIHRoZSBjYXNlIG9mIGFzeW5jIElP
-IGFuZCBJIGZvdW5kIHRoYXQgdGhlIHByaW9yaXR5IGlzIG9ubHkgICAgICAgICAKb2J0YWluZWQg
-ZnJvbSB0aGUgdGFzayBhbmQgbm90IGZyb20gdGhlIHJlcXVlc3QuIFRoaXMgbGVhZHMgbWUgdG8g
-YmVsaWV2ZSB0aGF0ICAKdGhlIGNoYW5nZXMgbWFkZSBpbiB0aGUgYmxrLWNvcmUgdG8gYWRkIHRo
-ZSBwcmlvcml0eSB0byB0aGUgcmVxdWVzdCB3aWxsIG5vdCAgICAKaW1wYWN0IHRoZSBDRlEgc2No
-ZWR1bGVyLiAKClRoZSBmb3VydGggYXJlYSB0aGF0IG1pZ2h0IGJlIGNvbmNlcm5pbmcgaXMgdGhl
-IGRyaXZlcnMuIHZpcnRpb19ibG9jayBjb3BpZXMgICAgCnRoZSByZXF1ZXN0IHByaW9yaXR5IGlu
-dG8gYSB2aXJ0dWFsIGJsb2NrIHJlcXVlc3QuIEkgYW0gYXNzdW1pbmcgdGhhdCB0aGlzICAgICAg
-CmV2ZW50dWFsbHkgbWFrZXMgaXQgdG8gYW5vdGhlciBkZXZpY2UgZHJpdmVyIHNvIHdlIGRvbid0
-IG5lZWQgdG8gd29ycnkgYWJvdXQgICAgCnRoaXMuIG51bGwgYmxvY2sgZGV2aWNlIGRyaXZlciBh
-bHNvIHVzZXMgdGhlIGlvcHJpbywgYnV0IHRoaXMgaXMgYWxzbyBub3QgYSAgICAgCmNvbmNlcm4u
-IGxpZ2h0bnZtIGFsc28gc2V0cyB0aGUgaW9wcmlvIHRvIGJ1aWxkIGEgcmVxdWVzdCB0aGF0IGlz
-IHBhc3NlZCBvbnRvICAgCmFub3RoZXIgZHJpdmVyLiBUaGUgbGFzdCBkcml2ZXIgdGhhdCB1c2Vz
-IHRoZSByZXF1ZXN0IGlvcHJpbyBpcyB0aGUgZnVzaW9uICAgICAgCm1wdHNhcyBkcml2ZXIgYW5k
-IEkgZG9uJ3QgdW5kZXJzdGFuZCBob3cgaXQgaXMgdXNpbmcgdGhlIGlvcHJpby4gRnJvbSB3aGF0
-IEkgICAgCmNhbiB0ZWxsIGl0IGlzIHRha2luZyBhIHJlcXVlc3Qgb2YgSU9QUklPX0NMQVNTX05P
-TkUgd2l0aCBkYXRhIG9mIDB4NyBhbmQgICAgICAgCmNhbGxpbmcgdGhpcyBoaWdoIHByaW9yaXR5
-IElPLiBUaGlzIGNvdWxkIGJlIGltcGFjdGVkIGJ5IHRoZSBjb2RlIEkgaGF2ZSAgICAgICAgCnBy
-b3Bvc2VkLCBidXQgSSBiZWxpZXZlIHRoZSBhdXRob3JzIGludGVuZGVkIHRvIHRyZWF0IHRoaXMg
-cGFydGljdWxhciBpb3ByaW8gICAgCnZhbHVlIGFzIGhpZ2ggcHJpb3JpdHkuIFRoZSBkcml2ZXIg
-d2lsbCBwYXNzIHRoZSByZXF1ZXN0IHRvIHRoZSBkZXZpY2UgICAgICAgICAgCndpdGggaGlnaCBw
-cmlvcml0eSBpZiB0aGUgYXBwcm9wcmlhdGUgaW9wcmlvIHZhbHVlcyBpcyBzZWVuIG9uIHRoZSBy
-ZXF1ZXN0LiAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClRoZSBmaWZ0aCBhcmVhIHRoYXQg
-SSBub3RpY2VkIG1heSBiZSBpbXBhY3RlZCBpcyBmaWxlIHN5c3RlbXMuIGJ0cmZzIHVzZXMgbG93
-ICAgCnByaW9yaXR5IElPIGZvciByZWFkIGFoZWFkLiBFeHQ0IHVzZXMgaW9wcmlvIGZvciBqb3Vy
-bmFsaW5nLiBCb3RoIG9mIHRoZXNlICAgICAgCmlzc3VlcyBhcmUgbm90IGEgcHJvYmxlbSBiZWNh
-dXNlIHRoZSBpb3ByaW8gaXMgc2V0IG9uIHRoZSB0YXNrIGFuZCBub3Qgb24gYSAgICAgCmJpby4K
-Cj4gVGhhbmtzLgo+IAo+IC0tIAo+IHRlanVuCgpUYWtlIGNhcmUsCkFkYW0KV2VzdGVybiBEaWdp
-dGFsIENvcnBvcmF0aW9uIChhbmQgaXRzIHN1YnNpZGlhcmllcykgRS1tYWlsIENvbmZpZGVudGlh
-bGl0eSBOb3RpY2UgJiBEaXNjbGFpbWVyOgoKVGhpcyBlLW1haWwgYW5kIGFueSBmaWxlcyB0cmFu
-c21pdHRlZCB3aXRoIGl0IG1heSBjb250YWluIGNvbmZpZGVudGlhbCBvciBsZWdhbGx5IHByaXZp
-bGVnZWQgaW5mb3JtYXRpb24gb2YgV0RDIGFuZC9vciBpdHMgYWZmaWxpYXRlcywgYW5kIGFyZSBp
-bnRlbmRlZCBzb2xlbHkgZm9yIHRoZSB1c2Ugb2YgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRv
-IHdoaWNoIHRoZXkgYXJlIGFkZHJlc3NlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJl
-Y2lwaWVudCwgYW55IGRpc2Nsb3N1cmUsIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBvciBhbnkgYWN0
-aW9uIHRha2VuIG9yIG9taXR0ZWQgdG8gYmUgdGFrZW4gaW4gcmVsaWFuY2Ugb24gaXQsIGlzIHBy
-b2hpYml0ZWQuIElmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZS1tYWlsIGluIGVycm9yLCBwbGVh
-c2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRlbGV0ZSB0aGUgZS1tYWlsIGlu
-IGl0cyBlbnRpcmV0eSBmcm9tIHlvdXIgc3lzdGVtLgo=
+Hello Tejun,
+
+The 09/29/2016 10:40, Tejun Heo wrote:
+> Hello,
+> 
+> On Tue, Sep 27, 2016 at 11:14:54AM -0700, Adam Manzanares wrote:
+> > Patch adds association between iocontext and a request.
+> > 
+> > Signed-off-by: Adam Manzanares <adam.manzanares@hgst.com>
+> 
+> Can you please describe how this may impact existing usages?
+>
+I'll start with the changes I made and work my way through a grep of            
+ioprio. Please add or correct any of the assumptions I have made.               
+                                                                                
+In blk-core, the behavior before the patch is to get the ioprio for the request 
+from the bio. The only references I found to bio_set_prio are in bcache. Both   
+of these references are in low priority operations (gc, bg writeback) so the    
+iopriority of the bio is set to IO_PRIOCLASS_IDLE in these cases.               
+                                                                                
+A kernel thread is used to submit these bios so the ioprio is going to come     
+from the current running task if the iocontext exists. This could be a problem  
+if we have set a task with high priority and some background work ends up       
+getting generated in the bcache layer. I propose that we check if the           
+iopriority of the bio is valid and if so, then we keep the priorirty from the   
+bio.                                                                            
+                                                                                
+The second area that I see a potential problem is in the merging code code in   
+blk-core when a bio is queued. If there is a request that is mergeable then     
+the merge code takes the highest priority of the bio and the request. This      
+could wipe out the values set by bio_set_prio. I think it would be              
+best to set the request as non mergeable when we see that it is a high          
+priority IO request.                                                            
+                                                                                
+The third area that is of interest is in the CFQ scheduler and the ioprio is    
+only used in the case of async IO and I found that the priority is only         
+obtained from the task and not from the request. This leads me to believe that  
+the changes made in the blk-core to add the priority to the request will not    
+impact the CFQ scheduler. 
+
+The fourth area that might be concerning is the drivers. virtio_block copies    
+the request priority into a virtual block request. I am assuming that this      
+eventually makes it to another device driver so we don't need to worry about    
+this. null block device driver also uses the ioprio, but this is also not a     
+concern. lightnvm also sets the ioprio to build a request that is passed onto   
+another driver. The last driver that uses the request ioprio is the fusion      
+mptsas driver and I don't understand how it is using the ioprio. From what I    
+can tell it is taking a request of IOPRIO_CLASS_NONE with data of 0x7 and       
+calling this high priority IO. This could be impacted by the code I have        
+proposed, but I believe the authors intended to treat this particular ioprio    
+value as high priority. The driver will pass the request to the device          
+with high priority if the appropriate ioprio values is seen on the request.     
+                                                                                
+The fifth area that I noticed may be impacted is file systems. btrfs uses low   
+priority IO for read ahead. Ext4 uses ioprio for journaling. Both of these      
+issues are not a problem because the ioprio is set on the task and not on a     
+bio.
+
+> Thanks.
+> 
+> -- 
+> tejun
+
+Take care,
+Adam
diff --git a/a/content_digest b/N1/content_digest
index 82c18c2..7dd9af9 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -5,88 +5,75 @@
  "Subject\0Re: [PATCH 1/3] block: Add iocontext priority to request\0"
  "Date\0Fri, 30 Sep 2016 09:02:17 -0700\0"
  "To\0Tejun Heo <tj@kernel.org>\0"
- "Cc\0<axboe@kernel.dk>"
-  <linux-block@vger.kernel.org>
- " <linux-ide@vger.kernel.org>\0"
+ "Cc\0axboe@kernel.dk"
+  linux-block@vger.kernel.org
+ " linux-ide@vger.kernel.org\0"
  "\00:1\0"
  "b\0"
- "SGVsbG8gVGVqdW4sCgpUaGUgMDkvMjkvMjAxNiAxMDo0MCwgVGVqdW4gSGVvIHdyb3RlOgo+IEhl\n"
- "bGxvLAo+IAo+IE9uIFR1ZSwgU2VwIDI3LCAyMDE2IGF0IDExOjE0OjU0QU0gLTA3MDAsIEFkYW0g\n"
- "TWFuemFuYXJlcyB3cm90ZToKPiA+IFBhdGNoIGFkZHMgYXNzb2NpYXRpb24gYmV0d2VlbiBpb2Nv\n"
- "bnRleHQgYW5kIGEgcmVxdWVzdC4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogQWRhbSBNYW56YW5h\n"
- "cmVzIDxhZGFtLm1hbnphbmFyZXNAaGdzdC5jb20+Cj4gCj4gQ2FuIHlvdSBwbGVhc2UgZGVzY3Jp\n"
- "YmUgaG93IHRoaXMgbWF5IGltcGFjdCBleGlzdGluZyB1c2FnZXM/Cj4KSSdsbCBzdGFydCB3aXRo\n"
- "IHRoZSBjaGFuZ2VzIEkgbWFkZSBhbmQgd29yayBteSB3YXkgdGhyb3VnaCBhIGdyZXAgb2YgICAg\n"
- "ICAgICAgICAKaW9wcmlvLiBQbGVhc2UgYWRkIG9yIGNvcnJlY3QgYW55IG9mIHRoZSBhc3N1bXB0\n"
- "aW9ucyBJIGhhdmUgbWFkZS4gICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK\n"
- "SW4gYmxrLWNvcmUsIHRoZSBiZWhhdmlvciBiZWZvcmUgdGhlIHBhdGNoIGlzIHRvIGdldCB0aGUg\n"
- "aW9wcmlvIGZvciB0aGUgcmVxdWVzdCAKZnJvbSB0aGUgYmlvLiBUaGUgb25seSByZWZlcmVuY2Vz\n"
- "IEkgZm91bmQgdG8gYmlvX3NldF9wcmlvIGFyZSBpbiBiY2FjaGUuIEJvdGggICAKb2YgdGhlc2Ug\n"
- "cmVmZXJlbmNlcyBhcmUgaW4gbG93IHByaW9yaXR5IG9wZXJhdGlvbnMgKGdjLCBiZyB3cml0ZWJh\n"
- "Y2spIHNvIHRoZSAgICAKaW9wcmlvcml0eSBvZiB0aGUgYmlvIGlzIHNldCB0byBJT19QUklPQ0xB\n"
- "U1NfSURMRSBpbiB0aGVzZSBjYXNlcy4gICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAgICAKQSBrZXJuZWwgdGhyZWFkIGlzIHVzZWQgdG8gc3VibWl0IHRoZXNlIGJpb3Mgc28gdGhl\n"
- "IGlvcHJpbyBpcyBnb2luZyB0byBjb21lICAgICAKZnJvbSB0aGUgY3VycmVudCBydW5uaW5nIHRh\n"
- "c2sgaWYgdGhlIGlvY29udGV4dCBleGlzdHMuIFRoaXMgY291bGQgYmUgYSBwcm9ibGVtICAKaWYg\n"
- "d2UgaGF2ZSBzZXQgYSB0YXNrIHdpdGggaGlnaCBwcmlvcml0eSBhbmQgc29tZSBiYWNrZ3JvdW5k\n"
- "IHdvcmsgZW5kcyB1cCAgICAgICAKZ2V0dGluZyBnZW5lcmF0ZWQgaW4gdGhlIGJjYWNoZSBsYXll\n"
- "ci4gSSBwcm9wb3NlIHRoYXQgd2UgY2hlY2sgaWYgdGhlICAgICAgICAgICAKaW9wcmlvcml0eSBv\n"
- "ZiB0aGUgYmlvIGlzIHZhbGlkIGFuZCBpZiBzbywgdGhlbiB3ZSBrZWVwIHRoZSBwcmlvcmlydHkg\n"
- "ZnJvbSB0aGUgICAKYmlvLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAKVGhlIHNlY29uZCBhcmVhIHRoYXQgSSBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSBpcyBpbiB0\n"
- "aGUgbWVyZ2luZyBjb2RlIGNvZGUgaW4gICAKYmxrLWNvcmUgd2hlbiBhIGJpbyBpcyBxdWV1ZWQu\n"
- "IElmIHRoZXJlIGlzIGEgcmVxdWVzdCB0aGF0IGlzIG1lcmdlYWJsZSB0aGVuICAgICAKdGhlIG1l\n"
- "cmdlIGNvZGUgdGFrZXMgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgb2YgdGhlIGJpbyBhbmQgdGhlIHJl\n"
- "cXVlc3QuIFRoaXMgICAgICAKY291bGQgd2lwZSBvdXQgdGhlIHZhbHVlcyBzZXQgYnkgYmlvX3Nl\n"
- "dF9wcmlvLiBJIHRoaW5rIGl0IHdvdWxkIGJlICAgICAgICAgICAgICAKYmVzdCB0byBzZXQgdGhl\n"
- "IHJlcXVlc3QgYXMgbm9uIG1lcmdlYWJsZSB3aGVuIHdlIHNlZSB0aGF0IGl0IGlzIGEgaGlnaCAg\n"
- "ICAgICAgICAKcHJpb3JpdHkgSU8gcmVxdWVzdC4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK\n"
- "VGhlIHRoaXJkIGFyZWEgdGhhdCBpcyBvZiBpbnRlcmVzdCBpcyBpbiB0aGUgQ0ZRIHNjaGVkdWxl\n"
- "ciBhbmQgdGhlIGlvcHJpbyBpcyAgICAKb25seSB1c2VkIGluIHRoZSBjYXNlIG9mIGFzeW5jIElP\n"
- "IGFuZCBJIGZvdW5kIHRoYXQgdGhlIHByaW9yaXR5IGlzIG9ubHkgICAgICAgICAKb2J0YWluZWQg\n"
- "ZnJvbSB0aGUgdGFzayBhbmQgbm90IGZyb20gdGhlIHJlcXVlc3QuIFRoaXMgbGVhZHMgbWUgdG8g\n"
- "YmVsaWV2ZSB0aGF0ICAKdGhlIGNoYW5nZXMgbWFkZSBpbiB0aGUgYmxrLWNvcmUgdG8gYWRkIHRo\n"
- "ZSBwcmlvcml0eSB0byB0aGUgcmVxdWVzdCB3aWxsIG5vdCAgICAKaW1wYWN0IHRoZSBDRlEgc2No\n"
- "ZWR1bGVyLiAKClRoZSBmb3VydGggYXJlYSB0aGF0IG1pZ2h0IGJlIGNvbmNlcm5pbmcgaXMgdGhl\n"
- "IGRyaXZlcnMuIHZpcnRpb19ibG9jayBjb3BpZXMgICAgCnRoZSByZXF1ZXN0IHByaW9yaXR5IGlu\n"
- "dG8gYSB2aXJ0dWFsIGJsb2NrIHJlcXVlc3QuIEkgYW0gYXNzdW1pbmcgdGhhdCB0aGlzICAgICAg\n"
- "CmV2ZW50dWFsbHkgbWFrZXMgaXQgdG8gYW5vdGhlciBkZXZpY2UgZHJpdmVyIHNvIHdlIGRvbid0\n"
- "IG5lZWQgdG8gd29ycnkgYWJvdXQgICAgCnRoaXMuIG51bGwgYmxvY2sgZGV2aWNlIGRyaXZlciBh\n"
- "bHNvIHVzZXMgdGhlIGlvcHJpbywgYnV0IHRoaXMgaXMgYWxzbyBub3QgYSAgICAgCmNvbmNlcm4u\n"
- "IGxpZ2h0bnZtIGFsc28gc2V0cyB0aGUgaW9wcmlvIHRvIGJ1aWxkIGEgcmVxdWVzdCB0aGF0IGlz\n"
- "IHBhc3NlZCBvbnRvICAgCmFub3RoZXIgZHJpdmVyLiBUaGUgbGFzdCBkcml2ZXIgdGhhdCB1c2Vz\n"
- "IHRoZSByZXF1ZXN0IGlvcHJpbyBpcyB0aGUgZnVzaW9uICAgICAgCm1wdHNhcyBkcml2ZXIgYW5k\n"
- "IEkgZG9uJ3QgdW5kZXJzdGFuZCBob3cgaXQgaXMgdXNpbmcgdGhlIGlvcHJpby4gRnJvbSB3aGF0\n"
- "IEkgICAgCmNhbiB0ZWxsIGl0IGlzIHRha2luZyBhIHJlcXVlc3Qgb2YgSU9QUklPX0NMQVNTX05P\n"
- "TkUgd2l0aCBkYXRhIG9mIDB4NyBhbmQgICAgICAgCmNhbGxpbmcgdGhpcyBoaWdoIHByaW9yaXR5\n"
- "IElPLiBUaGlzIGNvdWxkIGJlIGltcGFjdGVkIGJ5IHRoZSBjb2RlIEkgaGF2ZSAgICAgICAgCnBy\n"
- "b3Bvc2VkLCBidXQgSSBiZWxpZXZlIHRoZSBhdXRob3JzIGludGVuZGVkIHRvIHRyZWF0IHRoaXMg\n"
- "cGFydGljdWxhciBpb3ByaW8gICAgCnZhbHVlIGFzIGhpZ2ggcHJpb3JpdHkuIFRoZSBkcml2ZXIg\n"
- "d2lsbCBwYXNzIHRoZSByZXF1ZXN0IHRvIHRoZSBkZXZpY2UgICAgICAgICAgCndpdGggaGlnaCBw\n"
- "cmlvcml0eSBpZiB0aGUgYXBwcm9wcmlhdGUgaW9wcmlvIHZhbHVlcyBpcyBzZWVuIG9uIHRoZSBy\n"
- "ZXF1ZXN0LiAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClRoZSBmaWZ0aCBhcmVhIHRoYXQg\n"
- "SSBub3RpY2VkIG1heSBiZSBpbXBhY3RlZCBpcyBmaWxlIHN5c3RlbXMuIGJ0cmZzIHVzZXMgbG93\n"
- "ICAgCnByaW9yaXR5IElPIGZvciByZWFkIGFoZWFkLiBFeHQ0IHVzZXMgaW9wcmlvIGZvciBqb3Vy\n"
- "bmFsaW5nLiBCb3RoIG9mIHRoZXNlICAgICAgCmlzc3VlcyBhcmUgbm90IGEgcHJvYmxlbSBiZWNh\n"
- "dXNlIHRoZSBpb3ByaW8gaXMgc2V0IG9uIHRoZSB0YXNrIGFuZCBub3Qgb24gYSAgICAgCmJpby4K\n"
- "Cj4gVGhhbmtzLgo+IAo+IC0tIAo+IHRlanVuCgpUYWtlIGNhcmUsCkFkYW0KV2VzdGVybiBEaWdp\n"
- "dGFsIENvcnBvcmF0aW9uIChhbmQgaXRzIHN1YnNpZGlhcmllcykgRS1tYWlsIENvbmZpZGVudGlh\n"
- "bGl0eSBOb3RpY2UgJiBEaXNjbGFpbWVyOgoKVGhpcyBlLW1haWwgYW5kIGFueSBmaWxlcyB0cmFu\n"
- "c21pdHRlZCB3aXRoIGl0IG1heSBjb250YWluIGNvbmZpZGVudGlhbCBvciBsZWdhbGx5IHByaXZp\n"
- "bGVnZWQgaW5mb3JtYXRpb24gb2YgV0RDIGFuZC9vciBpdHMgYWZmaWxpYXRlcywgYW5kIGFyZSBp\n"
- "bnRlbmRlZCBzb2xlbHkgZm9yIHRoZSB1c2Ugb2YgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRv\n"
- "IHdoaWNoIHRoZXkgYXJlIGFkZHJlc3NlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJl\n"
- "Y2lwaWVudCwgYW55IGRpc2Nsb3N1cmUsIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBvciBhbnkgYWN0\n"
- "aW9uIHRha2VuIG9yIG9taXR0ZWQgdG8gYmUgdGFrZW4gaW4gcmVsaWFuY2Ugb24gaXQsIGlzIHBy\n"
- "b2hpYml0ZWQuIElmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZS1tYWlsIGluIGVycm9yLCBwbGVh\n"
- "c2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRlbGV0ZSB0aGUgZS1tYWlsIGlu\n"
- IGl0cyBlbnRpcmV0eSBmcm9tIHlvdXIgc3lzdGVtLgo=
+ "Hello Tejun,\n"
+ "\n"
+ "The 09/29/2016 10:40, Tejun Heo wrote:\n"
+ "> Hello,\n"
+ "> \n"
+ "> On Tue, Sep 27, 2016 at 11:14:54AM -0700, Adam Manzanares wrote:\n"
+ "> > Patch adds association between iocontext and a request.\n"
+ "> > \n"
+ "> > Signed-off-by: Adam Manzanares <adam.manzanares@hgst.com>\n"
+ "> \n"
+ "> Can you please describe how this may impact existing usages?\n"
+ ">\n"
+ "I'll start with the changes I made and work my way through a grep of            \n"
+ "ioprio. Please add or correct any of the assumptions I have made.               \n"
+ "                                                                                \n"
+ "In blk-core, the behavior before the patch is to get the ioprio for the request \n"
+ "from the bio. The only references I found to bio_set_prio are in bcache. Both   \n"
+ "of these references are in low priority operations (gc, bg writeback) so the    \n"
+ "iopriority of the bio is set to IO_PRIOCLASS_IDLE in these cases.               \n"
+ "                                                                                \n"
+ "A kernel thread is used to submit these bios so the ioprio is going to come     \n"
+ "from the current running task if the iocontext exists. This could be a problem  \n"
+ "if we have set a task with high priority and some background work ends up       \n"
+ "getting generated in the bcache layer. I propose that we check if the           \n"
+ "iopriority of the bio is valid and if so, then we keep the priorirty from the   \n"
+ "bio.                                                                            \n"
+ "                                                                                \n"
+ "The second area that I see a potential problem is in the merging code code in   \n"
+ "blk-core when a bio is queued. If there is a request that is mergeable then     \n"
+ "the merge code takes the highest priority of the bio and the request. This      \n"
+ "could wipe out the values set by bio_set_prio. I think it would be              \n"
+ "best to set the request as non mergeable when we see that it is a high          \n"
+ "priority IO request.                                                            \n"
+ "                                                                                \n"
+ "The third area that is of interest is in the CFQ scheduler and the ioprio is    \n"
+ "only used in the case of async IO and I found that the priority is only         \n"
+ "obtained from the task and not from the request. This leads me to believe that  \n"
+ "the changes made in the blk-core to add the priority to the request will not    \n"
+ "impact the CFQ scheduler. \n"
+ "\n"
+ "The fourth area that might be concerning is the drivers. virtio_block copies    \n"
+ "the request priority into a virtual block request. I am assuming that this      \n"
+ "eventually makes it to another device driver so we don't need to worry about    \n"
+ "this. null block device driver also uses the ioprio, but this is also not a     \n"
+ "concern. lightnvm also sets the ioprio to build a request that is passed onto   \n"
+ "another driver. The last driver that uses the request ioprio is the fusion      \n"
+ "mptsas driver and I don't understand how it is using the ioprio. From what I    \n"
+ "can tell it is taking a request of IOPRIO_CLASS_NONE with data of 0x7 and       \n"
+ "calling this high priority IO. This could be impacted by the code I have        \n"
+ "proposed, but I believe the authors intended to treat this particular ioprio    \n"
+ "value as high priority. The driver will pass the request to the device          \n"
+ "with high priority if the appropriate ioprio values is seen on the request.     \n"
+ "                                                                                \n"
+ "The fifth area that I noticed may be impacted is file systems. btrfs uses low   \n"
+ "priority IO for read ahead. Ext4 uses ioprio for journaling. Both of these      \n"
+ "issues are not a problem because the ioprio is set on the task and not on a     \n"
+ "bio.\n"
+ "\n"
+ "> Thanks.\n"
+ "> \n"
+ "> -- \n"
+ "> tejun\n"
+ "\n"
+ "Take care,\n"
+ Adam
 
-878c3c8731fdaf83016ff6ec3ddc0d27ac3bbeff38eeb630d38518e90c06f732
+bc8465216deac9dbe7a158a139213c082bef3125c13d60dc2efc45161315a39a

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.