Hi,
Inorder to support AIO for raw/O_DIRECT, I need to add "struct kiocb *"
to generic_file_direct_IO() and all direct_IO() ops.
generic_file_direct_IO(int rw, struct file *file, const struct iovec *iov,
loff_t offset, unsigned long nr_segs)
Instead of adding a new argument, I propose replace
"struct file *file" argument with "struct kiocb *iocb"
One can get "filp" from iocb->ki_filp.
Any objections ?
Thanks,
Badari
Badari Pulavarty wrote:
>
> Hi,
>
> Inorder to support AIO for raw/O_DIRECT, I need to add "struct kiocb *"
> to generic_file_direct_IO() and all direct_IO() ops.
>
> generic_file_direct_IO(int rw, struct file *file, const struct iovec *iov,
> loff_t offset, unsigned long nr_segs)
>
> Instead of adding a new argument, I propose replace
>
> "struct file *file" argument with "struct kiocb *iocb"
>
> One can get "filp" from iocb->ki_filp.
>
> Any objections ?
>
OK by me.
BTW, while you're poking around in there could you please rename
generic_direct_IO() to blockdev_direct_IO() and move
generic_file_direct_IO() back into filemap.c?
On Tue, 29 Oct 2002, Badari Pulavarty wrote:
> Inorder to support AIO for raw/O_DIRECT, I need to add "struct kiocb *"
> to generic_file_direct_IO() and all direct_IO() ops.
>
> generic_file_direct_IO(int rw, struct file *file, const struct iovec *iov,
> loff_t offset, unsigned long nr_segs)
>
> Instead of adding a new argument, I propose replace
>
> "struct file *file" argument with "struct kiocb *iocb"
>
> One can get "filp" from iocb->ki_filp.
>
> Any objections ?
here's a naive objection. is there any preallocated data structure
associated with a kiocb other than the struct itself? if there is, that
will have some scalability impact for applications like Oracle that like
to create a very large database by opening thousands of files.
- Chuck Lever
--
corporate: <cel at netapp dot com>
personal: <chucklever at bigfoot dot com>
>
> On Tue, 29 Oct 2002, Badari Pulavarty wrote:
>
> > Inorder to support AIO for raw/O_DIRECT, I need to add "struct kiocb *"
> > to generic_file_direct_IO() and all direct_IO() ops.
> >
> > generic_file_direct_IO(int rw, struct file *file, const struct iovec *iov,
> > loff_t offset, unsigned long nr_segs)
> >
> > Instead of adding a new argument, I propose replace
> >
> > "struct file *file" argument with "struct kiocb *iocb"
> >
> > One can get "filp" from iocb->ki_filp.
> >
> > Any objections ?
>
> here's a naive objection. is there any preallocated data structure
> associated with a kiocb other than the struct itself? if there is, that
> will have some scalability impact for applications like Oracle that like
> to create a very large database by opening thousands of files.
>
> - Chuck Lever
If the application is not using Async IO, "kiocb" structure comes
from stack. Other than that, there are no preallocated strcutures
associated with kiocb.
- Badari