Messages in this thread | | | Date | Wed, 23 Jan 2002 12:57:38 -0800 (PST) | From | Andre Hedrick <> | Subject | Re: END GAME (Re: Linux 2.5.3-pre1-aia1) |
| |
On Wed, 23 Jan 2002, Jens Axboe wrote:
> On Tue, Jan 22 2002, Andre Hedrick wrote: > > > > Linus, Jens, > > > > I need a function that performs the kmapping to return a pointer with all > > the data needed for that transaction of the data phase, and will cross > > pages correctly, and may cross more than 2 pages at a time in PIO. > > I do not care how you do. > > > > char * majic_voodoo_mapping ( > > struct request *rq, > > int nsect, > > unsigned long *flags) > > { > > char * buffer_walk = ide_map_rq(rq, &flags); > > nsect -= ide_rq_offset(rq); > > do { > > buffer_walk += get_some_more(rq, nsect); > > } while (nsect) > > return buffer_walk; > > }
When I chatted w/ Anton, he suggested a char ** to allow page walking. This is more in line for allowing a rq->bio_list walking.
Obviously I may not have the correct item but the idea should be clean.
> > This should solve all the problems in the data-phases and let the driver > > run correctly. The result is on each "get_some_more" will all BLOCK/BIO to > > return the partial competions of at least one page > > > > The function would behave like ide_end_request but only to adjust the > > buffer in process, and make block/bio deal with munging it back to the top > > layers on the partial completions, it will not stop the data IO process of > > the ATOMIC command in process. > > That _is_ what ide_end_request is doing, it is not stopping any data I/O > in progress. It is also atomic. What exactly do you think is missing?
If you are provided with an acceptable solution to make BLOCK/BIO more flexable to the needs of the hardware, that is a possible answer and should be acceptable, provided it does not violate other layers ?
> > Better yet, I will shut my PIEHOLE! > > Oh, that'll be the day. Lets just say I'm not running to get my > calendar and the big fat marker. :-)
Don't worry, I will FedEX one to you so you will not have to search.
Cheers,
Andre Hedrick Linux Disk Certification Project Linux ATA Development
- 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/
| |