Messages in this thread | | | Date | Wed, 21 Jul 2004 11:45:50 -0700 | From | Shesha Sreenivasamurthy <> | Subject | Re: O_DIRECT |
| |
Thank you very much .... -Shesha
Rob van Nieuwkerk wrote:
>On Wed, 21 Jul 2004 11:01:20 -0700 >Shesha Sreenivasamurthy <shesha@inostor.com> wrote: > >Hi Shesha, > > > >>ohhh OK, if the block size is 4096, then the read/write size must be >>integer multiple of 4096 ??? is it ??? >>In general should the read/write length be a multiple of block size? >> >> > >Yes, see my previous emails. > > greetings, > Rob van Nieuwkerk > > > >>Rob van Nieuwkerk wrote: >> >> >> >>>On Wed, 21 Jul 2004 10:10:26 -0700 >>>Shesha Sreenivasamurthy <shesha@inostor.com> wrote: >>> >>>Hi Shesha, >>> >>>You don't mention what the *size* of your read()/write() is. >>>Besides a requirement on the alignment of the read/write buffer >>>the size of the read()/write() must also be OK. >>> >>> greetings, >>> Rob van Nieuwkerk >>> >>> >>> >>> >>> >>>>This is what I found .... >>>> >>>>Our driver sets the block size to be 4096. so BLKBSZGET will return >>>>4096. So if I allin the memory at 4096 boundary, I cannot read using >>>>O_DIRECT. But, if I set the block size to 512. I can read/write >>>>successfully. It also works with 1024, but no with 4096 >>>> >>>>So the recepie what I am following is ... >>>> >>>>BLKBSZGET -> Get original block size >>>>BLKBSZSET -> Set the block size to 512 >>>>READ | WRITE Successfully ;) >>>>BLKBSZSET -> Set back to the original block size >>>> >>>>-Shesha >>>> >>>>Rob van Nieuwkerk wrote: >>>> >>>> >>>> >>>> >>>> >>>>>On Tue, 20 Jul 2004 10:27:57 -0700 >>>>>Shesha Sreenivasamurthy <shesha@inostor.com> wrote: >>>>> >>>>>Hi Shesha, >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>>I am having trouble with O_DIRECT. Trying to read or write from a block >>>>>>device partition. >>>>>> >>>>>>1. Can O_DIRECT be used on a plain block device partition say >>>>>>"/dev/sda11" without having a filesystem on it. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>yes. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>>2. If no file system is created then what should be the softblock size. >>>>>>I am using the IOCTL "BLKBSZGET". Is this correct? >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>yes. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>>3. Can we use SEEK_END with O_DIRECT on a partition without filesystem. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>yes. >>>>> >>>>>I'm using these exact things in an application. >>>>> >>>>>Note that with 2.4 kernels the "granularity" you can use for offset >>>>>and r/w size is the softblock size (*). For 2.6 the requirements are >>>>>much more relaxed: it's the device blocksize (typically 512 byte). >>>>> >>>>>(*): actually one of offset or r/w size has a smaller minimum if >>>>>I remember correctly. Don't remember which one. But if you assume >>>>>the softblock size as a minimum for both you're allways safe. >>>>> >>>>> greetings, >>>>> Rob van Nieuwkerk >>>>> >>>>>-- >>>>>Kernelnewbies: Help each other learn about the Linux kernel. >>>>>Archive: http://mail.nl.linux.org/kernelnewbies/ >>>>>FAQ: http://kernelnewbies.org/faq/ >>>>> >>>>> >>>>>. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>-- >>>Kernelnewbies: Help each other learn about the Linux kernel. >>>Archive: http://mail.nl.linux.org/kernelnewbies/ >>>FAQ: http://kernelnewbies.org/faq/ >>> >>> >>>. >>> >>> >>> >>> >>> > >-- >Kernelnewbies: Help each other learn about the Linux kernel. >Archive: http://mail.nl.linux.org/kernelnewbies/ >FAQ: http://kernelnewbies.org/faq/ > > >. > > >
- 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/
| |