09-27-2016
Usually, direct I/O is a bad idea. What are you attempting to accomplish? pmem uses DAX already.
DAX is intended for RAM or RAM-like devices with page sizes identical to the system page size. It avoids an extra copy-between-kernel step that may otherwise happen the first time a page is read using block devices, even RAM ones.
In other words, DAX is direct I/O specially optimized for RAM.
Last edited by Corona688; 09-27-2016 at 12:15 PM..
10 More Discussions You Might Find Interesting
1. Filesystems, Disks and Memory
Looking for suggestions as to which filesystem to go with. I currently use gfs2 on hosts with 3.4tb useable. I understand gfs2 is being left behind but xfs and ext4 are not quite certified completely on CentOS 5.2. I have email storage hosts that have a decent i/o requirement and 12TB usable after... (12 Replies)
Discussion started by: king_hippo
12 Replies
2. Filesystems, Disks and Memory
Gidday,
Are you using ext4 for production system? Or is it better to opt for a more
conservative strategy, like ext3 for instance?
What are your experiences?
Thanks in advance,
Loïc. (3 Replies)
Discussion started by: Loic Domaigne
3 Replies
3. Solaris
wht is major difference between filesystem & partition (3 Replies)
Discussion started by: rajaramrnb
3 Replies
4. Programming
I am trying to write .pgm images using the O_DIRECT flag in open().
I have a char* buffer which has the image data.
I know that I have to align the buffers and have done that using posix_memalign() yet only a part of the image gets written.
Has someone used O_DIRECT for writing files... (3 Replies)
Discussion started by: anchit87
3 Replies
5. Shell Programming and Scripting
Is there some was to test if opening with the O_DIRECT flag will work (without writing a C program)? (2 Replies)
Discussion started by: brsett
2 Replies
6. Programming
Hi there,
I have a problem with Unix kernel programming.
I have to write a program who should output the whole information the EXT4 extents contain. I have found many tutorial and information about how the EXT4 filesystem is working. Also There ar many information about the EXT4 structure but I... (1 Reply)
Discussion started by: oedurgan
1 Replies
7. Red Hat
Is there any way to conver ext4 to ext3 filesystem without formatting the partition/disk ..
Had ext3 filesystem and had converted it to ext4 by issuing following command
# tune2fs -O extents,uninit_bg,dir_index /dev/sda1
# fsck -pf /dev/sda1
# blkid /dev/sda1
/dev/sda1:... (1 Reply)
Discussion started by: Shirishlnx
1 Replies
8. Solaris
Hello everyone,
I am trying to mount an ext4 filesystem which I created from Ubuntu. But mount command fails saying:
prakhar@Solaris:~$ sudo mount /dev/dsk/c10t0d0p1 /mnt
Password:
mount: /dev/dsk/c10t0d0p1 is not this fstype
And I also tried this:
prakhar@Solaris:~$ fstyp... (6 Replies)
Discussion started by: Prakhar Mishra
6 Replies
9. Red Hat
Hello guys,
I would like to ask you kindly if you don't know some quick and safe method how to shrink ext4 filesystem and reduce the size of a Logical Volume in Linux, please?
Thank you very much. (2 Replies)
Discussion started by: los_bandidos
2 Replies
10. Solaris
Hi,
could you explain what DAX fallbacks mean in detail and how to avoid them? Or is it ok to have fallbacks?
Unfortunately googling does not help...
MANpage says: fallbacks == Number of commands completed by the software, which DAX could not complete
OK, but why and what does... (0 Replies)
Discussion started by: pressy
0 Replies
LEARN ABOUT OPENSOLARIS
bcopy
bcopy(9F) Kernel Functions for Drivers bcopy(9F)
NAME
bcopy - copy data between address locations in the kernel
SYNOPSIS
#include <sys/types.h>
#include <sys/sunddi.h>
void bcopy(const void *from, void *to, size_t bcount);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
from Source address from which the copy is made.
to Destination address to which copy is made.
bcount The number of bytes moved.
DESCRIPTION
The bcopy() function copies bcount bytes from one kernel address to another. If the input and output addresses overlap, the command exe-
cutes, but the results may not be as expected.
Note that bcopy() should never be used to move data in or out of a user buffer, because it has no provision for handling page faults. The
user address space can be swapped out at any time, and bcopy() always assumes that there will be no paging faults. If bcopy() attempts to
access the user buffer when it is swapped out, the system will panic. It is safe to use bcopy() to move data within kernel space, since
kernel space is never swapped out.
CONTEXT
The bcopy() function can be called from user, interrupt, or kernel context.
EXAMPLES
Example 1 Copying data between address locations in the kernel:
An I/O request is made for data stored in a RAM disk. If the I/O operation is a read request, the data is copied from the RAM disk to a
buffer (line 8). If it is a write request, the data is copied from a buffer to the RAM disk (line 15). bcopy() is used since both the RAM
disk and the buffer are part of the kernel address space.
1 #define RAMDNBLK 1000 /* blocks in the RAM disk */
2 #define RAMDBSIZ 512 /* bytes per block */
3 char ramdblks[RAMDNBLK][RAMDBSIZ]; /* blocks forming RAM
/* disk
...
4
5 if (bp->b_flags & B_READ) /* if read request, copy data */
6 /* from RAM disk data block */
7 /* to system buffer */
8 bcopy(&ramdblks[bp->b_blkno][0], bp->b_un.b_addr,
9 bp->b_bcount);
10
11 else /* else write request, */
12 /* copy data from a */
13 /* system buffer to RAM disk */
14 /* data block */
15 bcopy(bp->b_un.b_addr, &ramdblks[bp->b_blkno][0],
16 bp->b_bcount);
SEE ALSO
copyin(9F), copyout(9F)
Writing Device Drivers
WARNINGS
The from and to addresses must be within the kernel space. No range checking is done. If an address outside of the kernel space is
selected, the driver may corrupt the system in an unpredictable way.
SunOS 5.11 16 Jan 2006 bcopy(9F)