From: "M. Warner Losh" <imp@bsdimp.com>
To: hch@lst.de
Cc: nolan@sigbus.net, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] block/raw-posix.c:hdev_create() on FreeBSD and in general
Date: Wed, 20 May 2009 10:24:40 -0600 (MDT) [thread overview]
Message-ID: <20090520.102440.2069461709.imp@bsdimp.com> (raw)
In-Reply-To: <20090520150320.GA2844@lst.de>
In message: <20090520150320.GA2844@lst.de>
Christoph Hellwig <hch@lst.de> writes:
: On Wed, May 20, 2009 at 08:41:24AM -0600, M. Warner Losh wrote:
: > : Also I think we should allow creating the host devices on all supported
: > : operating systems. For Linux we should use block devices, for FreeBSD
: > : always char devices. For the other BSDs and Solaris do we allow only
: > : block or also the raw char devices? Not sure if they actually support
: > : O_DIRECT for block devices nodes which pretty much is a Linux-ism so
: > : for cache=none at least we should probably open the raw nodes..
: >
: > Other BSDs still have block devices. O_DIRECT is supported in at
: > least NetBSD (and FreeBSD).
:
: Well, O_DIRECT on block devices. On Linux a block device opened with
: O_DIRECT is the equivalent to the traditional BSD raw devices. My last
: look at freebsd was that there is no support for buffered access to block
: device at all since the removal of the block device nodes.
Well, it depends on what you mean by buffered. O_DIRECT is supposed
to bypass the buffer cache, at least on FreeBSD:
O_DIRECT may be used to minimize or eliminate the cache effects of read-
ing and writing. The system will attempt to avoid caching the data you
read or write. If it cannot avoid caching the data, it will minimize the
impact the data has on the cache. Use of this flag can drastically
reduce performance if not used with care.
so when accessing the device directly, you will still have buffer
cache participation in read/write unless you specify this flag. In
which case, that's reduced as far as possible.
The main difference between the char devices and the block devices is
that the char devices can only read/write full blocks, while the block
devices used to be able to write 44 bytes at offset 33 if you wanted.
Warner
prev parent reply other threads:[~2009-05-20 16:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-20 8:07 [Qemu-devel] block/raw-posix.c:hdev_create() on FreeBSD and in general Christoph Hellwig
2009-05-20 14:41 ` M. Warner Losh
2009-05-20 15:03 ` Christoph Hellwig
2009-05-20 16:24 ` M. Warner Losh [this message]
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=20090520.102440.2069461709.imp@bsdimp.com \
--to=imp@bsdimp.com \
--cc=hch@lst.de \
--cc=nolan@sigbus.net \
--cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).