From: "Randy.Dunlap" <rddunlap@osdl.org>
To: Bruno Diniz de Paula <diniz@cs.rutgers.edu>
Cc: linux-kernel@vger.kernel.org
Subject: Re: O_DIRECT foolish question
Date: Wed, 12 Feb 2003 17:46:37 -0800 [thread overview]
Message-ID: <20030212174637.3975e7c3.rddunlap@osdl.org> (raw)
In-Reply-To: <1045092155.21195.93.camel@urca.rutgers.edu>
On 12 Feb 2003 18:22:35 -0500
Bruno Diniz de Paula <diniz@cs.rutgers.edu> wrote:
| Just to complete the information, I am trying to read a file with 5
| bytes, and here is the piece of code I am using:
|
| char *message;
| int fd = open("/var/tmp/testopen.txt", O_RDONLY|O_DIRECT);
| int len, pagesize = getpagesize();
|
| posix_memalign((void **)&message, pagesize, pagesize);
| if(fd < 0) {
| printf("Unable to open file, errno is %d.\n", errno);
| } else {
| if((len = read(fd, message, pagesize)) < 0) {
| perror("read");
| } else {
| printf("%d bytes read from file.\n", len);
| printf("Message: %s", message);
| }
| }
| close(fd);
|
| Thanks,
|
| Bruno.
|
| On Wed, 2003-02-12 at 18:02, Bruno Diniz de Paula wrote:
| > On Wed, 2003-02-12 at 17:42, Chris Wedgwood wrote:
| > > On Wed, Feb 12, 2003 at 05:29:52PM -0500, Bruno Diniz de Paula wrote:
| > >
| > > > But I am using multiples of page size in both buffer alignment and
| > > > buffer size (2nd and 3rd parameters of read). The issue is that
| > > > when I try to read files with sizes that are NOT multiples of block
| > > > size (and therefore also not multiples of page size), the read
| > > > syscall returns 0, with no errors.
| > >
| > > What filesystem?
| >
| > ext2.
| >
| > >
| > > Can you send an strace of this occurring?
| >
[strace snipped]
| >
| > Thanks a lot,
| >
| > Bruno.
| >
| > >
| > > > So the question remains, am I able to read just files whose size is
| > > > a multiple of block size?
| > >
| > > No.
| > >
| > > You ideally should be able to read any length file with O_DIRECT.
| > > Even a 1-byte file.
Here's what I get using Bruno's and cw's (od) programs:
2.4.8|2.4.20 2.4.20 2.5.54
ext2 ext3 ext2|ext3
==== ==== =========
od: read 0 bytes read: Inv. arg. read: Inv. arg.
bruno: 0 bytes read read: Inv. arg. read: Inv. arg.
--
~Randy
next prev parent reply other threads:[~2003-02-13 1:39 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-12 21:19 Bruno Diniz de Paula
2003-02-12 22:03 ` Andrew Morton
2003-02-12 22:29 ` Bruno Diniz de Paula
2003-02-12 22:42 ` Chris Wedgwood
2003-02-12 23:02 ` Bruno Diniz de Paula
2003-02-12 23:22 ` Bruno Diniz de Paula
2003-02-13 1:46 ` Randy.Dunlap [this message]
2003-02-12 23:24 ` Chris Wedgwood
2003-02-12 23:33 ` Bruno Diniz de Paula
2003-02-12 23:38 ` Chris Wedgwood
2003-02-12 23:49 ` Bruno Diniz de Paula
2003-02-12 23:51 ` Chris Wedgwood
[not found] ` <1045094589.4767.106.camel@urca.rutgers.edu>
[not found] ` <20030213001302.GA13833@f00f.org>
2003-02-13 0:36 ` Bruno Diniz de Paula
2003-02-13 5:12 ` Andrew Morton
2003-02-13 15:22 ` Bruno Diniz de Paula
2003-02-13 17:31 ` Andrew Morton
2003-02-13 22:45 ` Bruno Diniz de Paula
2003-02-12 23:33 ` Chris Wedgwood
2003-02-12 22:07 ` Chris Wedgwood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030212174637.3975e7c3.rddunlap@osdl.org \
--to=rddunlap@osdl.org \
--cc=diniz@cs.rutgers.edu \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®