Messages in this thread | | | Date | Wed, 10 Aug 2011 08:43:55 +0900 | Subject | Re: [RFC PATCH] request: teach the device more intelligent | From | Kyungmin Park <> |
| |
On Wed, Aug 10, 2011 at 3:52 AM, Jens Axboe <axboe@kernel.dk> wrote: > On 2011-08-09 05:47, Kyungmin Park wrote: >> Hi Jens >> >> Now eMMC device requires the upper layer information to improve the data >> performance and reliability. >> >> . Context ID >> Using the context information, it can sort out the data internally and improve the performance. >> The main problem is that it's needed to define "What's the context". >> Actually I expect cfq queue has own unique ID but it doesn't so decide to use the pid instead >> >> . Data Tag >> Using the Data Tag (1-bit information), It writes the data at SLC area when it's hot data. So it can make the chip more reliable. >> First I expect the REQ_META but current ext4 doesn't pass the WRITE_META. only use the READ_META. so it needs to investigate it. >> >> With these characteristics, it's helpful to teach the device. After some consideration. it's needed to pass out these information at request data structure. >> >> Can you give your opinions and does it proper fields at requests? > > You need this to work on all IO schedulers, not just cfq. Of course if the concept is acceptable, I'll add the other IO schedulers also.
> And since that's the case, there's no need to add this field since you can just > retrieve it if the driver asks for it. For CFQ, it could look like this: > > static int cfq_foo(struct request *rq) > { > struct cfq_queue *cfqq = rq->elevator_private[1]; > > if (cfqq) > return cfqq->pid; > > return -1; > }
The actual user of these information is device driver. e.g., drivers/mmc/card/block.c So it's not good to use cfq data structure at D/D. some time later these are also used at scsi device drivers. > > As to the hot part, I think that would be better as just a request flag > like eg the meta flag. Yes it can use the JBD_flags at cfq. but same reason it's not proper reference at device drivers. that's reason to make a filed at request.
Device driver should or must see the request data structure and don't refer the upper layer data structures.
Thank you, Kyungmin Park -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |