From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAf0g-0007K7-Bn for qemu-devel@nongnu.org; Thu, 02 Jul 2015 09:58:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZAf0e-0003tS-VZ for qemu-devel@nongnu.org; Thu, 02 Jul 2015 09:58:38 -0400 Message-ID: <55954384.9010906@redhat.com> Date: Thu, 02 Jul 2015 15:58:28 +0200 From: Laurent Vivier MIME-Version: 1.0 References: <55952D97.7040009@redhat.com> <559540F6.9090800@redhat.com> In-Reply-To: <559540F6.9090800@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] raw-posix.c: remove raw device access for cdrom List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , Stefan Hajnoczi , Programmingkid Cc: Kevin Wolf , Peter Maydell , John Snow , qemu-devel qemu-devel , Qemu-block On 02/07/2015 15:47, Paolo Bonzini wrote: > > > On 02/07/2015 14:24, Laurent Vivier wrote: >> >> #ifdef __FreeBSD__ >> if (S_ISCHR(st.st_mode)) { >> /* >> * The file is a char device (disk), which on FreeBSD isn't behind >> * a pager, so force all requests to be aligned. This is needed >> * so QEMU makes sure all IO operations on the device are aligned >> * to sector size, or else FreeBSD will reject them with EINVAL. >> */ >> s->needs_alignment = true; >> } >> #endif > > So on FreeBSD and Apple /dev/r* is the equivalent of BDRV_O_NO_CACHE? This is what I understand (MacOS is a derivative from FreeBSD) https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/hdiutil.1.html DEVICE SPECIAL FILES Since any /dev entry can be treated as a raw disk image, it is worth noting which devices can be accessed when and how. /dev/rdisk nodes are character-special devices, but are "raw" in the BSD sense and force block-aligned I/O. They are closer to the physical disk than the buffer cache. /dev/disk nodes, on the other hand, are buffered block-special devices and are used primarily by the kernel's filesystem code. Laurent