On Tue, May 29, 2012 at 1:24 AM, Boaz Harrosh <bharrosh@xxxxxxxxxxx> wrote: > On 05/28/2012 08:14 PM, Peng Tao wrote: > >> On Mon, May 28, 2012 at 6:51 PM, Boaz Harrosh <bharrosh@xxxxxxxxxxx> wrote: >>> On 05/28/2012 01:44 PM, Boaz Harrosh wrote: >>> >>>> On 05/28/2012 07:13 AM, tao.peng@xxxxxxx wrote: >>>> >>>>>> -----Original Message----- >>>>>> From: Myklebust, Trond [mailto:Trond.Myklebust@xxxxxxxxxx] >>>>>> Sent: Monday, May 28, 2012 11:43 AM >>>>>> To: Peng, Tao >>>>>> Cc: bergwolf@xxxxxxxxx; linux-nfs@xxxxxxxxxxxxxxx >>>>>> Subject: RE: [PATCH 1/3] NFS41: add pnfs_dio_begin/dio_end >>>>>> >>>>>> On Sun, 2012-05-27 at 22:30 -0400, tao.peng@xxxxxxx wrote: >>>>>>> I'm afraid there is. There is no way to pass struct blk_plug around pg_init/pg_doio, unless we put >>>>>> it in struct nfs_pageio_descriptor, which I think is more intrusive and less efficient as it is only >>>>>> useful for block layout driver in DIO case. >>>>>> >>>>>> Then add a 'void *pg_layout_private' field to nfs_pageio_descriptor and >>>>>> allocate the struct blk_plug dynamically. >>>>>> >>>> >>>>> OK. I thought data structure change is more intrusive because it >>>>> affects all layout drivers and generic NFS as well. But since you >>>>> think it is OK, I will change it as you suggested. >>>>> >>>> >>>> >>>> I want a pg_layout_private in nfs_pageio_descriptor as well. I even wrote >>>> the ML about it. And everyone agreed. (Just never had time to finish) >>>> >>>> So yes please do add it. it will have more users. >>>> >>> >>> >>> I forgot to say. You might want/need to pass this pg_layout_private >>> back to LD->paglist_write/read. (If you need to, I will) >>> >>> (In fact one optimization I wanted for a long time is to pass >>> nfs_pageio_descriptor to paglist_write/read directly instead of >>> duplicating all it's members (back and forth). In a new invented >>> structures where the worse is that the common code of read and write >>> can't be common because it is not the same types. >>> But that's for another patch) >>> >> I also plan to add void *layout_private and unsigned char moreio > > > you mean bool moreio. What is it? > Yes. It will be assigned as pgio->pg_moreio before calling LD->read/write_pagelist, to tell LD if more IO is coming. block layout driver needs it to determine when to call blk_finish_plug(). >> to >> nfs_pageio_header structure, in order to pass necessary information to >> pagelist_read/write. Are there any objections against doing so? >> > > > Yes please add it to the passed structure > >> The alternative would be to extent pnfs_try_to_read/write_data() and >> read/write_pagelist() APIs to pass in the same information. >> > > > Don't add new parameters to the functions. Add new fields to the passed > structures. > Got it. Thanks, Tao -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html